解决 JavaScript 中的代码注入

Solving code injection in JavaScript

我接到了一项处理安全漏洞的任务。我使用 DefenseCode ThunderScan 运行 对我们项目中的所有自定义 JavaScript 文件进行了测试,发现了几个高威胁漏洞,所有这些漏洞都与 'code injection' 相关。发现漏洞的代码片段示例:

setTimeout(function () {
     window.location.href = Urls.getHuhnScaleIndexDataUrl.replace('ResidentId',
     model.residentId()).replace('SessionVal', true); 
}, 2000);

window.open(urlReport, '_blank');

这些代码示例中究竟有什么漏洞?

使用 windows.open 被认为是不好的做法,因为新的 windows 保留了对 parent 的引用,然后可以尝试向其中注入/编码。

新的 window 有一个 opener 字段指向以前的 window,具有 不受限制的 访问权限,这意味着您可以删除parent 的正文或窃取嵌入表单中的令牌...

参考:https://dev.to/ben/the-targetblank-vulnerability-by-example