![]() |
1
141
我不确定这是否可行-但如果你不能打破框架,为什么不只是显示一个警告。例如,如果您的页面不是“Top page”,请创建一个setInterval方法,尝试打破框架。如果在3或4次尝试之后,您的页面仍然不是顶部页面-创建一个DIV元素,用一条消息和一个链接覆盖整个页面(模式框),如…
不是最好的,但我看不出他们有什么办法可以用脚本来解决这个问题。 |
![]() |
3
31
我们在我们的一个网站中使用了以下方法 http://seclab.stanford.edu/websec/framebusting/framebust.pdf
|
![]() |
4
29
想到这个,它至少在火狐和Opera浏览器中有效。
|
![]() |
5
21
考虑到为iframe引入沙盒的当前HTML5标准,当攻击者使用沙盒时,可以禁用此页面中提供的所有帧破坏代码,因为它限制iframe如下:
现在,假设攻击者使用以下代码在iframe中托管您的站点:
然后,所有的javascript帧分解代码都将失败。 在检查了所有帧业务代码之后,在所有情况下,只有这种防御才有效:
最初由 Gustav Rydstedt, Elie Bursztein, Dan Boneh, and Collin Jackson (2010) |
![]() |
6
19
经过一段时间的思考,我相信这会告诉他们谁是老板…
使用
|
![]() |
7
6
|
![]() |
8
5
好吧,我们知道那是在一个框架里。所以我们把路径作为get变量定位到另一个特殊页面。我们现在向用户解释正在发生的事情,并提供一个带有target=“Top”选项的链接。它很简单,可能会工作(还没有测试过),但它需要一些用户交互。也许你可以向用户指出有问题的网站,让你的网站某个地方的点击Jackers感到羞耻。只是一个主意,但它是夜间工作。 |
![]() |
9
5
所有建议的解决方案都直接强制更改顶部窗口的位置。如果用户希望框架在那里呢?例如,搜索引擎图像结果中的顶框。 我编写了一个原型,默认情况下,所有输入(链接、表单和输入元素)都被禁用,并且/或者在激活时什么也不做。 如果检测到包含帧,输入将被禁用,并在页面顶部显示警告消息。警告消息包含一个链接,该链接将在新窗口中打开页面的安全版本。这样可以防止页面被用于点击劫持,同时允许用户在其他情况下查看内容。 如果未检测到包含帧,则启用输入。 这是密码。您需要将标准HTML属性设置为安全值,并添加包含实际值的附加属性。它可能是不完整的,对于完全安全性而言,其他属性(我正在考虑事件处理程序)可能必须以相同的方式处理:
|
![]() |
10
5
我要勇敢地把我的帽子扔到这只戒指上(虽然很古老),看看我能得到多少选票。 这是我的尝试,似乎在我测试过的任何地方都有效(chrome20、ie8和ff14):
我把这个代码放在
它是如何工作的? …我听到你问-好吧,诚实的回答是,我没有 真的? 知道。在我测试的每一个地方都要花很多时间才能使它正常工作,而且它的确切效果会因运行位置的不同而略有不同。 下面是它背后的想法:
为了我
发生什么事了?
你不能避免在Chrome和火狐中等待时间吗?
显然不是。起初,我将XHR指向一个返回404的URL——这在Firefox中不起作用。然后我尝试了
如果任何一个经过的Javascript Ninjas想要更好地解释正在发生的事情,为什么这是(可能)错误的,不可靠的,他们见过的最糟糕的代码等等,我会很乐意倾听。 |
![]() |
11
5
到2015年,您应该使用CSP2
例如
当然,还没有多少浏览器支持CSP2,所以最好将旧的
我建议两者都包括,否则你的网站将继续受到 Clickjacking 在旧浏览器中进行攻击,当然,即使没有恶意意图,您也会得到不受欢迎的帧。现在大多数浏览器都会自动更新,但是由于传统的应用程序兼容性原因,您仍然倾向于让公司用户停留在旧版本的Internet Explorer上。 |
![]() |
12
4
好吧,您可以修改计数器的值,但这显然是一个脆弱的解决方案。在确定站点不在框架内之后,您可以通过Ajax加载您的内容——这也不是一个很好的解决方案,但它希望避免在卸载之前触发事件(我假设)。 编辑:另一个想法。如果检测到您在一个框架中,请要求用户禁用javascript,然后单击将您带到所需URL的链接(传递一个让您的页面知道的查询字符串,告诉用户他们可以在javascript出现后重新启用)。 编辑2:去核化-如果你发现你在一个框架,只需删除你的文件正文内容和打印一些讨厌的信息。 编辑3:您能枚举顶部文档并将所有函数设置为空(甚至是匿名函数)吗? |
![]() |
13
4
如果在buster代码之后添加一个警报,那么该警报将暂停javascript线程,并让页面加载。这就是StackOverflow所做的,它会从我的iframes中释放出来,即使我使用了框架破坏工具。它也适用于我的简单测试页面。这只在Windows上的Firefox 3.5和IE7中进行过测试。 代码:
|
![]() |
14
3
我想你就快到了。你试过了吗?
或者,或者:
注:我实际上没有测试过这个。 |
![]() |
15
2
再三给巴斯特打电话怎么样?这将创造一个竞赛条件,但人们可能希望巴斯特能出类拔萃:
|
![]() |
16
2
如果您查看
|
![]() |
17
2
我可能只是找到了一个破解框架克星JavaScript的方法。在我的javascript函数中使用getelementsbyname,我已经在frame buster和实际frame buster脚本之间设置了一个循环。 看看这篇文章。 http://www.phcityonweb.com/frame-buster-buster-buster-2426 |
![]() |
18
0
setInterval和setTimeout创建一个自动递增的间隔。每次调用setTimeout或setInterval时,这个数字都会增加一个,这样,如果调用setTimeout,就会得到当前的最高值。
由于有10000个同时运行的设置间隔和设置超时几乎是闻所未闻的,并且由于设置超时返回“创建的最后一个间隔或超时+1”,并且由于top.clearInterval仍然是可访问的,这将击败黑帽攻击框架网站,如前所述。 |
![]() |
19
0
使用htaccess可避免高顶进框架集、iframe和任何内容(如图像)。
这将显示版权页,而不是预期的。 |
![]() |
code-geek · Jquery根据单选按钮选择隐藏或显示文本字段 5 月前 |
![]() |
Alex · 在轻量级中同时解构和不解构变量 5 月前 |
![]() |
Ângelo Rigo · ReactJS映射:如何迭代[关闭] 5 月前 |
![]() |
bairog · 从按属性筛选的对象数组字典中创建值数组 5 月前 |
![]() |
lokiuucx · JS对象属性返回未定义,尽管对象属性应该有值 6 月前 |