JavaScript文件中反映的XSS跨站点脚本
我的JS文件包含以下代码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
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警告,因为您没有使用它进行安全检查,所以它可能被注入的脚本使用