作者: gentle_zhou
原文链接:OWASP Top 10漏洞解析(1)- A1:Broken Access Control 访问控制失效-云社区-华为云
Web应用程序安全一直是一个重要的话题,它不但关系到网络用户的隐私,财产,而且关系着用户对程序的新人。随着Web应用程序功能持续增加,复杂性不断提高,这些程序也面临着越来越多的安全威胁和挑战。
为了帮助这些应用程序的开发团队和安全人员了解和防范这些威胁,提高安全意识,编写更安全的代码,OWASP(Open Web Application Security Project,开放式Web应用程序安全项目)发布了一份标准指南,称为OWASP Top 10。
这是一份关于Web应用程序安全风险的标准指南,它基于全球范围内的安全专家和数据提供者的共识,列出了当前最严重、最关键的10种Web应用程序安全风险,并提供了相应的防范措施和建议。OWASP Top10 每隔几年会更新一次(目前已经发布了六个版本,分别是2004年、2007年、2010年、2013年、2017年和2021年),最新的版本是在2021年发布的OWASP Top10:2021。
今天,就来为大家讲解其中的第一条缺陷:Broken Access Control访问控制失效,它从2017年版本的第5位上升到了当前第一位。

破坏访问控制指的是访问控制策略没有被正确的执行,导致用户可以在他们的预期权限之外进行操作。这种缺陷通常会导致未授权的信息被泄露,修改,销毁,或者让用户执行了超出其权限限制的业务功能。
常见的访问控制失效类型包括:
访问控制仅仅在可信的服务器端代码或则API中生效,因为这可以防止攻击者修改访问控制检查或元数据。同时,需要做到如下几点:
开发人员和安全质量相关人员在日常,应该养成针对访问控制功能模块进行集成测试的习惯。
应用程序在访问账号信息的SQL语句中使用了未被验证的数据:
- pstmt.setString(1, request.getParameter("acct"));
- ResultSet results = pstmt.executeQuery( );
那么攻击者就可以去修改这个参数信息"acct”为任何他们想要的信息,配上任何他们希望了解的账号。如果程序对这信息没有好好验证,那么攻击者就可以借此去了解任何一位用户的账号信息,比如https://example.com/app/accountInfo?acct=notmyacct。
体验华为云CodeArts Check 代码检查服务:代码检查CodeArts Check_精准定位_代码缺陷_安全检查_华为云