OWASP Top 10 是开放网络应用安全项目(Open Web Application Security Project)每3-4年发布的十大最严重Web应用安全风险清单,被业界视为Web安全的「圣经」。
1. 失效的访问控制(Broken Access Control)
-
描述:未正确限制用户对资源的访问,导致越权操作。
-
攻击场景:
-
水平越权:普通用户访问其他用户的资源(如
/user?id=123
改为/user?id=456
)。 -
垂直越权:普通用户访问管理员功能(如
/admin
路径)。
-
-
防御措施:
-
实施最小权限原则。
-
使用基于角色的访问控制(RBAC)。
-
对敏感操作进行二次验证。
# 错误:直接使用客户端传入的ID String userId = request.getParameter("id"); User user = userDao.getUser(userId); #正确:从会话中获取已认证的用户ID String loggedInUserId = session.getAttribute("userId"); User user = userDao.getUser(loggedInUserId);
-
2. 加密机制失效(Cryptographic Failures)
-
描述:敏感数据因加密机制不当而泄露。
-
常见问题:
-
使用弱加密算法(如MD5、SHA1)。
-
硬编码加密密钥。
-
TLS配置错误(如支持SSLv2)。
-
-
防御措施:
-
使用强加密算法(如AES
-