如何创建规则(HTTP 请求重定向不应对伪造攻击开放 - RSPEC-5146)java 插件
Posted
技术标签:
【中文标题】如何创建规则(HTTP 请求重定向不应对伪造攻击开放 - RSPEC-5146)java 插件【英文标题】:how to create rule (HTTP request redirections should not be open to forging attacks - RSPEC-5146) java plugin 【发布时间】:2020-03-27 18:40:42 【问题描述】:该规则仅在商业中可用,我想创建一个关于 HTTP 请求方向的自定义规则
下面的代码是合规和不合规的
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException
String location = req.getParameter("url");
resp.sendRedirect(location); // Noncompliant non- compliant
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException
String location = req.getParameter("url");
if (!urlWhiteList.contains(location))
throw new IOException();
resp.sendRedirect(location);
【问题讨论】:
你的问题不是很清楚。您可以开始阅读the documentation 并更新您的问题。 【参考方案1】:这些规则使用一些更高级的算法进行静态分析。这篇文章https://wiki.mozilla.org/Abstract_Interpretation 提供了很好的高级介绍。那你可能对https://en.wikipedia.org/wiki/Pointer_analysis感兴趣
掌握了基础知识后,就可以关注https://github.com/SonarSource/sonar-java/blob/master/docs/CUSTOM_RULES_101.md开始实现了
【讨论】:
以上是关于如何创建规则(HTTP 请求重定向不应对伪造攻击开放 - RSPEC-5146)java 插件的主要内容,如果未能解决你的问题,请参考以下文章