客户端跨框架脚本攻击解决方案

时间:2015-01-05 15:31:07

标签: java jsp security xss client-side-attacks

我们开发了一个新的应用程序,在移动更改之前,我们使用checkmarx对代码进行了静态扫描。 在名为Client Cross Frame Scripting Attack的代码中存在中等级别的漏洞。

这在JSP页面的第一行被删除:

<!DOCTYPE html>

你能帮助我理解这次攻击吗?应该采取什么措施来消除这种攻击?

3 个答案:

答案 0 :(得分:5)

客户端跨站点脚本攻击查询查找页面是否保护自己不被嵌入IFrame中。它搜索以下条件:

 if (top != self)
 if (top.location != location)
 if (top.frames.length != 0)

等等。

我相信这个特定的文件没有这样的条件,所以它最不能保护自己,这就是查询找到并标记它的原因。由于我们在这里寻找缺失的行,结果只显示文件,并且无法显示问题所在。

希望它有所帮助,

来自Checkmarx的Adar。

答案 1 :(得分:1)

要更深入地解决此问题,并实际修复跨框架脚本问题,请查看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);

答案 2 :(得分:1)

只需在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>