【问题标题】:HP Fortify issue, possible XSS vulerability?HP Fortify 问题,可能存在 XSS 漏洞?
【发布时间】:2023-03-27 22:52:01
【问题描述】:

我试图了解 Fortify 在这里看到的风险。我是 XSS 工作的新手,在我决定这不是一个真正的问题之前,我想确定一下。除了弄乱自己的计算机之外,我看不出一个人如何使用此代码来做任何事情,所以我很好奇我是否遗漏了什么。

这里是原文 Fortify 表示分配window.location.href 的行是漏洞。发送到浏览器的“未验证”数据。

    <c:if test="${isExternalUser}">
        <script type="text/javascript">
            $(function(){
                $('#logoutLink').on('click', function(){
                    var logoutUrl = window.appSettings.context + '/external/logout/';
                    $.get(logoutUrl).done(function(){
                        window.location.href = window.location.protocol + "//" + window.location.host + window.appSettings.context + "/?${ssw:encodeJS(header['policy-signout'])}";                 
                    });
                });
            });
        </script>
    </c:if>

据我所知,这里没有风险。

【问题讨论】:

    标签: javascript jquery html security xss


    【解决方案1】:

    我看不出有任何风险。

    浏览器外部唯一未经验证的数据是

    ${ssw:encodeJS(header['policy-signout'])}
    

    这是正确的 JS 编码。也许 Fortify 没有意识到这个事实。

    您可以尝试拆分该行(作为测试),以确保它是未被识别为执行 JS 编码的 encodejs

    var policySignout = "${ssw:encodeJS(header['policy-signout'])}";
    
    window.location.href = window.location.protocol + "//" + window.location.host + window.appSettings.context + "/?" + policySignout;
    

    【讨论】:

    • 谢谢,据我所知,Fortify 在这里完全是错误的(就像很多其他时候一样)谢谢您的关注
    • 我也是 Fortify 的新手,但是 Fortify 抱怨的原因显然是使用了 window.location.protocol,可以伪造(不要问我如何和何时)
    猜你喜欢
    • 2022-06-21
    • 2023-04-07
    • 1970-01-01
    • 2012-03-10
    • 2011-12-03
    • 2012-06-21
    • 2021-01-01
    • 2014-12-26
    • 2022-01-12
    相关资源
    最近更新 更多