解决 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
我接到了一项处理安全漏洞的任务。我使用 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