如何创建规则(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 插件的主要内容,如果未能解决你的问题,请参考以下文章

php防攻击

跨站点脚本编制和重定向问题

CSRF 攻击及应对之道

服务器CSRF攻击的应对之道

web.config 中的 IIS 重写规则将 HTTPS 请求重定向到 HTTP

如何使用haproxy进行url路径重定向,非域名跳转