短网址安全浅谈
字数 884 2025-08-18 11:38:56
短网址安全教学文档
一、短网址基础概念
1.1 定义
短网址(Short URL)是指形式上比原始网址更短的网址,主要用于替代冗长的原始网址,方便传输和分享。
1.2 工作原理
- 用户提交长网址到短网址服务
- 服务端通过算法将长网址转换为短网址
- 将长短网址对应关系存储到数据库
- 用户访问短网址时,服务端返回302/301重定向到原始长网址
二、短网址生成算法
2.1 进制算法
- 原理:基于数字和字母(62个字符)的任意进制转换
- 示例:
ID = 233 序列 = "0123456789abcdefghijklmnopqrstuvwxyz" 233/36 = 6 233%36 = 17 取第6位('6')和第17位('h') → 短网址为xx.xx/6h
2.2 随机数算法
- 原理:从候选字符中随机选取字符组合
- 示例:
字符序列 = "0123456789abcdefghijklmnopqrstuvwxyz" 随机选取第6位('6')和第17位('h') → 短网址为xx.xx/6h
2.3 HASH算法
- 原理:对ID进行HASH运算(可选加盐)
- 示例:
ID = 233 sha1(233) = "aaccb8bb2b4c442a7c16a9b209c9ff448c6c5f35" 取前7位 → 短网址为xx.xx/aaccb8b
三、短网址安全风险
3.1 算法预测与爆破
- 进制算法特征:
- 连续生成的短网址有规律
- 访问低位短网址(如/1、/2)通常存在记录
- HASH/随机算法特征:
- 生成的短网址无规律
- 访问低位短网址通常不存在记录
3.2 实际攻击案例
-
敏感信息泄露:
- 爆破获取含敏感参数的URL(如身份验证、合同、密码重置链接)
-
业务安全攻击:
- 爆破邀请链接短网址,实现批量注册/薅羊毛
四、短网址服务漏洞
4.1 SSRF漏洞
- 成因:自定义域名绑定内网地址时过滤不严
- 影响:可访问内网资源
4.2 XSS漏洞
- 成因:
- 展示长网址页面过滤不严
- 获取并展示TITLE功能过滤不严
- Payload示例:
</title><script>alert(1)</script><title>
4.3 SQL注入
- 成因:拼接查询时未过滤用户输入
- 检测方法:
- 尝试
and 1=1等逻辑测试 - 联合查询获取数据库信息
- 尝试
五、防御措施
-
访问控制:
- 限制单IP访问频率和总量
- 设置访问阈值并封禁异常IP
-
敏感信息处理:
- 对含敏感信息的短网址设置过期时间
- 对敏感操作增加二次鉴权
-
安全开发:
- 严格过滤用户输入
- 避免直接拼接SQL查询
- 对重定向目标进行严格校验
六、影响范围
- 所有使用短网址服务的系统
- 特别是包含敏感操作和信息的业务系统
七、最佳实践建议
- 优先使用随机数或HASH算法生成短网址
- 避免在短网址中传递敏感参数
- 对重要操作实施多因素认证
- 定期审计短网址使用情况
- 及时修复发现的漏洞