Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript文件中反映的XSS跨站点脚本_Javascript_Java_Jsp_Xss_Cross Site - Fatal编程技术网

JavaScript文件中反映的XSS跨站点脚本

JavaScript文件中反映的XSS跨站点脚本,javascript,java,jsp,xss,cross-site,Javascript,Java,Jsp,Xss,Cross Site,我的JS文件包含以下代码 function changeLanguage(newLang) { var winLoc = String(this.window.location); var pos = winLoc.indexOf("lang="); var spacer = '?'; if(pos >0) { var curLang = winLoc.substring(pos+5,pos+7); winLoc = winL

我的JS文件包含以下代码

function changeLanguage(newLang) {
    var winLoc = String(this.window.location);
    var pos = winLoc.indexOf("lang=");
    var spacer = '?';
    if(pos >0) {
        var curLang = winLoc.substring(pos+5,pos+7);
        winLoc = winLoc.replace('lang=' + curLang, 'lang='+newLang);

    } else {
        if(winLoc.indexOf("?") > 0) {
            spacer = '&';
        }

        winLoc = winLoc + spacer + 'lang=' + newLang;
    }

    this.window.location = winLoc;  //here is the issue


}
通过HP Fortify工具扫描代码时,我在突出显示的一行遇到XSS跨站点脚本问题

我可以在这里做些什么,使HP Fortify不会将此视为漏洞?提前感谢

使用指定位置。在分配脚本之前,它会将脚本的源代码与所需的url进行比较。
从上面的链接:

如果由于安全冲突而无法进行分配,则抛出
security\u错误类型的
DOMException
。如果调用该方法的脚本的原点与
Location
对象最初描述的页面原点不同,则会发生这种情况,主要是当脚本托管在不同的域上时

您还可以使用来防止当前页面保存在会话历史记录中。

使用分配位置。在分配脚本之前,它会将脚本的源代码与所需的url进行比较。
从上面的链接:

如果由于安全冲突而无法进行分配,则抛出
security\u错误类型的
DOMException
。如果调用该方法的脚本的原点与
Location
对象最初描述的页面原点不同,则会发生这种情况,主要是当脚本托管在不同的域上时


您还可以使用来防止当前页面保存在会话历史记录中。

其中是
newLang
来自项目中存储的属性文件@Teemu。键值对是“langChangeFunction=changeLanguage('EN')”。如果使用方法分配位置,它会抱怨吗?这实际上是barbsan的建议。。。无论如何,设置
window.location.href
也可以,尽管我不确定这与XSS有什么关系。@Teemu我希望
window.location.href=winLoc
会发出同样的XSS警告,因为您没有使用它进行安全检查,所以它可能已被注入脚本使用,其中
newLang
来自项目中存储的属性文件?@Teemu。键值对是“langChangeFunction=changeLanguage('EN')”。如果使用方法分配位置,它会抱怨吗?这实际上是barbsan的建议。。。无论如何,设置
window.location.href
也可以,尽管我不确定这与XSS有什么关系。@Teemu我希望
window.location.href=winLoc
发出相同的XSS警告,因为您没有使用它进行安全检查,所以它可能被注入的脚本使用