首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >客户端跨框架脚本攻击解决方案

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

Stack Overflow用户
提问于 2015-01-05 23:31:07
回答 3查看 14.7K关注 0票数 3

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

这是在JSP页面的第一行分离的:

代码语言:javascript
复制
<!DOCTYPE html>

你能帮我理解一下这种攻击吗?应该怎么做才能消除这种攻击?

EN

回答 3

Stack Overflow用户

发布于 2015-01-12 20:07:50

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

代码语言:javascript
复制
 if (top != self)
 if (top.location != location)
 if (top.frames.length != 0)

诸若此类。

我认为这个特定的文件没有这样的条件,所以它很可能不会保护自己,这就是查询找到并标记它的原因。因为我们正在寻找这里缺少的一行,所以结果只显示了文件,而不能显示问题所在。

希望能有所帮助,

来自Checkmarx的Adar。

票数 5
EN

Stack Overflow用户

发布于 2015-03-18 01:35:09

要更深入地了解这个问题,并实际修复跨框架脚本问题,请查看https://css-tricks.com/snippets/javascript/break-out-of-iframe/

基本上就是把它放到你的父布局文件中( C# MVC中的_Layout.cshtml)

代码语言:javascript
复制
        (function (window) { // Prevent Cross-Frame Scripting attacks
            if (window.location !== window.top.location)
                window.top.location = window.location;
        })(this);
票数 1
EN

Stack Overflow用户

发布于 2017-01-13 14:27:19

只需在您的HTML文件中添加以下代码。

代码语言:javascript
复制
<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>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27782673

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档