我们开发了一个新应用程序,在移动更改之前,我们使用 checkmarx 对代码进行了静态扫描。在名为 Client Cross Frame Scripting Attack 的代码中发现了一个中等级别的漏洞。
这是在 JSP 页面的第一行发现的:
<!DOCTYPE html>
你能帮我理解这种攻击吗?应该怎么做才能消除这种攻击?
我们开发了一个新应用程序,在移动更改之前,我们使用 checkmarx 对代码进行了静态扫描。在名为 Client Cross Frame Scripting Attack 的代码中发现了一个中等级别的漏洞。
这是在 JSP 页面的第一行发现的:
<!DOCTYPE html>
你能帮我理解这种攻击吗?应该怎么做才能消除这种攻击?
Client Cross Site Scripting Attack查询查找页面是否保护自己不被嵌入到 IFrame 中。它搜索条件,例如:
if (top != self)
if (top.location != location)
if (top.frames.length != 0)
等等。
我相信这个特定的文件没有这样的条件,所以它很可能不会保护自己,这就是查询找到并标记它的原因。由于我们在这里查找缺少的行,因此结果只会显示文件,而无法显示问题出在哪里。
希望能帮助到你,
来自Checkmarx的Adar 。
要更深入地了解这个问题,并实际解决跨框架脚本问题,请查看https://css-tricks.com/snippets/javascript/break-out-of-iframe/
基本上把它扔到你最父级的布局文件中(C#MVC 中的 _Layout.cshtml)
(function (window) { // Prevent Cross-Frame Scripting attacks
if (window.location !== window.top.location)
window.top.location = window.location;
})(this);
只需在您的 HTML 文件中添加以下代码。
<style id='antiClickjack'>
body{display:none !important;}
</style>
<script type='text/javascript'>
if (self === top) {
var antiClickjack = document.getElementById('antiClickjack');
antiClickjack.parentNode.removeChild(antiClickjack);
} else {
top.location = self.location;
}
</script>