版权声明:本文为博主原创文章,转载本站文章请注明作者和出处,请勿用于任何商业用途。 https://blog.csdn.net/wutianxu123/article/details/82941445
4.1 越权漏洞
授权用户通过更改访问时的参数,可以访问到原本并没有得到授权的对象,此时应用程序存在越权漏洞。
代码示例:
String query = "SELECT * FROM accounts WHERE id = ?";
PreparedStatement stmt = connection.prepareStatement(query, ...);
stmt.setString(1, request.getParameter("id"));
ResultSet results = stmt.executeQuery();
//上面一段代码缺少进一步的权限控制机制,导致攻击者可以通过将URL中的id参数更改为其他用户的id从而越权查询其他用户的信息
4.2 URL访问控制不严格
应用程序往往具有不同角色的用户,不同角色的用户具有不同的权限和功能,这些不同的功能分别对应不同的URL。
对URL的访问控制不严格可能导致攻击者非授权访问一些敏感信息、调用敏感方法。
代码示例:
String query = "SELECT * FROM accounts WHERE id = ?";
PreparedStatement stmt = connection.prepareStatement(query, ...);
stmt.setString(1, request.getParameter("id"));
ResultSet results = stmt.executeQuery();
//上面一段代码缺少进一步的权限控制机制,导致攻击者可以通过将URL中的id参数更改为其他用户的id从而越权查询其他用户的信息