我有一个javascript标签库我一直都很好,但是随着我们最近升级的Fortify,我们在代码的window.location部分遇到了一个严重的错误(编辑,应该已经提到了这是原始代码,在修改之前):
var b=window.location.href;
我们的第一个修改是:
var b = (escape(window.location.href.toString()));
当失败时,我们发现并尝试了以下内容:
var b = (encodeID(window.location.href.toString()));
function encodeID(s) {
if (s==='') return '_';
return s.replace(/[^a-zA-Z0-9.-]/g, function(match) {
return '_'+match[0].charCodeAt(0).toString(16)+'_';
});
}
但Fortify的另一次运行仍然会引发严重错误。 还尝试过:
var b=encodeURIComponent(window.location.href);
仍然很关键 有人想让它通过吗?
答案 0 :(得分:1)
@Carlos Mendieta我同意你的看法。我认为Fortify在这里错误地报道了一个问题。您没有为window.location.href赋值,只需在变量中设置值即可。关于安全堆栈交换security stack exchange: JS code giving xss vulnerability的讨论基本上是相同的。我想看看你是否可以调整Fortify以便不报告这个项目。