【发布时间】:2017-07-12 22:09:20
【问题描述】:
我有一个一直在使用的 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);
仍然很关键。
有人想通过它吗?
【问题讨论】:
-
看看那个answer
-
我今天读到了,但我想我不明白。它说选项1是安全的。库中的原始代码有 var b=window.location.href;这应该是安全的,但这也很关键。我没有分配它去的地址,除了用户单击选项卡之外,他们没有其他输入选项。我知道有人可以从窗口复制地址并使用传递的参数来做坏事;但是,我不明白如何解决它。我上面的所有尝试都遇到了严重错误。
标签: javascript xss fortify