「短网址服务」安全测试清单

1. 输入校验与防注入 SQL 注入 在生成短链 API 中输入恶意 URL:https://abc.com' OR '1'='1 在搜索接口传入注入语句:s.io/abc123' UNION SELECT ... 预期:系统返回参数错误(100001),无数据泄露。 XSS 攻击

1. 输入校验与防注入

  • SQL 注入

    • 在生成短链 API 中输入恶意 URL:https://abc.com' OR '1'='1
    • 在搜索接口传入注入语句:s.io/abc123' UNION SELECT ...
    • 预期:系统返回参数错误(100001),无数据泄露。
  • XSS 攻击

    • 输入长链为:<script>alert(1)</script>
    • 前端展示时是否被执行。
    • 预期:系统对 URL 做转义,前端仅展示字符串,不执行脚本。
  • HTML 注入

    • 自定义短码输入 HTML 标签:<b>shop</b>
    • 预期:保存失败,提示「短码不合法」。

2. 恶意短链检测

  • 黑名单域名

    • 输入 URL 来自钓鱼域名 → 返回错误码 120003
  • 恶意内容检测

    • 测试接入 Google Safe Browsing / 腾讯网址安全服务。
    • 预期:恶意 URL 阻止生成短链。

3. 认证与鉴权

  • 未登录访问

    • 尝试调用需要登录的 API(如 /api/list)。
    • 预期:返回 110004(Token 无效/过期)。
  • 权限越权

    • 用户 A 尝试删除用户 B 的短链。
    • 预期:返回 110005(权限不足)。
  • API Key 管理

    • 过期的 API Key 调用 → 返回 130001(Key 无效)。
    • 已删除的 Key 调用 → 返回 130001
    • 短时间内高频调用 → 返回 130003(超限)。

4. 短链跳转安全

  • 开放重定向

    • 确认跳转目标为 DB 中合法 URL,禁止拼接任意参数实现跳转。
    • 预期:禁止绕过生成流程直接构造跳转 URL。
  • HTTPS 强制

    • 访问短链服务必须走 HTTPS(HSTS 生效)。
    • 预期:HTTP 请求自动跳转 HTTPS。

5. 数据安全

  • 密码存储

    • 确认密码存储使用 BCrypt/Argon2,禁止明文或弱 Hash。
  • 敏感数据泄露

    • API Key 在列表展示时应打码。
    • 返回日志中不得打印完整 Token 或密码。
  • 数据库备份

    • 确认备份文件加密存储,访问控制严格。

6. 限流与防刷

  • 接口限流

    • 短时间内高频调用 /api/shorten
    • 预期:超过阈值返回 100002 / 130003,系统稳定。
  • 验证码防护(可选)

    • 游客频繁生成短链时触发验证码机制。

7. CSRF 与跨域

  • CSRF 测试

    • 模拟第三方网站发起 POST 请求到短链 API。
    • 预期:请求被拦截(Token 校验或 SameSite Cookie)。
  • CORS 配置

    • 测试跨域访问接口。
    • 预期:仅允许白名单域名调用 API。

8. 文件与二维码安全

  • 二维码生成

    • 确认返回的二维码内容仅包含短链,不包含恶意脚本。
  • 下载安全

    • 确认下载文件类型为 image/pngimage/svg+xml,避免 XSS。

9. 审计与日志

  • 登录失败审计

    • 多次失败登录是否记录日志。
  • 异常访问记录

    • 短链不存在、过期的访问是否记录。
  • API Key 滥用记录

    • 超限/异常调用是否有报警机制。

测试工具

  • SQL 注入/XSS:Burp Suite / OWASP ZAP / sqlmap
  • 恶意 URL 检测:集成 Google Safe Browsing API
  • 压力防刷:JMeter + Gatling
  • CORS/CSRF:Postman + 自定义 JS 脚本

📌 总结:
这份 安全测试清单 覆盖了:输入安全、认证授权、防注入、防刷、数据保护、日志审计。
配合之前的功能测试性能测试,可以形成完整的 QA 覆盖矩阵。

继续阅读

探索更多技术文章

浏览归档,发现更多关于系统设计、工具链和工程实践的内容。

全部文章 返回首页