
360浏览器中API接口常见安全设计问题集中在认证(弱令牌、无状态验证)、授权(角色越权、权限校验失效)和输入验证(参数绕过、类型混淆)环节,测试需覆盖这些逻辑漏洞,改进需强化令牌安全、细化权限模型、实施严格输入校验。
老师讲解API安全核心概念:
| 认证方式 | 定义 | 特性 | 使用场景 |
|---|---|---|---|
| Token(JWT) | 无状态,令牌内含用户信息 | 自包含,无需数据库 | 跨域、无状态服务(如移动端、API网关) |
| Session(Cookie) | 服务器端存储会话 | 有状态,需后端维护 | 传统Web应用(如登录后保持会话) |
| 方法 | 定义 | 优点 | 缺点 |
|---|---|---|---|
| 白名单校验 | 仅允许符合规则的输入(如数字正则^[0-9]+$) | 严格,防止未知输入 | 规则复杂,维护成本高 |
| 黑名单校验 | 排除危险输入(如禁止' or 1=1) | 简单,快速 | 无法覆盖所有攻击 |
测试认证环节(弱令牌导致未授权访问)
假设API接口为/api/user/profile,需认证。测试用例:
GET /api/user/profile HTTP/1.1,Host: browser.360.com,Authorization: Bearer (空)401 Unauthorized(未认证)。测试授权环节(角色越权)
假设用户角色为“普通用户”,API接口/api/admin/data需管理员权限。测试用例:
GET /api/admin/data HTTP/1.1,Host: browser.360.com,Authorization: Bearer (普通用户Token)403 Forbidden(权限不足)。(约80秒)各位面试官好,关于360浏览器API接口的安全设计问题,核心是认证、授权、输入验证三个环节的常见漏洞。首先,认证方面,很多API可能使用弱令牌(如JWT未加密或有效期过长),导致令牌泄露后可长期访问。比如测试时,直接发送请求不带Token,就能获取用户数据,说明认证失效。授权方面,角色越权问题很典型,比如普通用户能调用管理员接口,测试时用普通用户身份调用管理员API,返回数据说明权限校验失败。输入验证方面,参数绕过很常见,比如数字参数传入字符串,系统未校验类型,导致SQL注入或逻辑漏洞。改进建议:认证用强加密的Token,设置短有效期;授权细化角色权限,实施最小权限原则;输入验证用白名单校验,结合上下文验证,比如数字参数必须匹配正则^[0-9]+$,字符串长度限制。