6

我们最近遇到了一个问题,即其他网站在一个框架集中运行我们的电子商务网站,而我们的网站(带有违规者附属 ID)是单个全宽框架中的唯一内容。所以本质上它看起来和感觉就像我们的网站,他们的 URL 在顶部。我们可以切断他们的会员 ID,这会使他们这样做毫无意义,但这并不能阻止未来的罪犯在我们发现之前做同样的事情。

有没有一种通用的方法(通过可能出现在每个页面上的 JavaScript?)来防止这种情况发生?请注意,向所有链接添加目标是不可行的,但是向所有页面添加一个 JS 片段是可行的,因为页眉和页脚部分是从单一来源在站点范围内共享的。

另一种可能性是在 Apache 级别(如果我们可以在服务器端做任何事情),因为我们确实通过 mod-rewrite 传递所有请求。

请注意,如果父页面源自我们的域,则必须允许页面在 IFrame 中加载,因为我们有效地使用了 IFrame

4

4 回答 4

6

我听说这个问题的解决方案被称为“框架弹出脚本”。一个快速的谷歌提出了这个线程。看起来这是最简单的一种:

if (window != top) top.location.href = location.href; 
于 2009-01-20T01:27:32.890 回答
4

我相信实现这一点的正确现代方法是使用X-Frame-Options 响应标头

来自 MDN:

X-Frame-Options HTTP 响应标头可用于指示是否应允许浏览器在框架或 iframe 中呈现页面。网站可以使用它来避免点击劫持攻击,方法是确保其内容不会嵌入到其他网站中。

看看:如何防止 IFRAME 重定向顶级窗口

于 2013-06-20T15:21:02.077 回答
2

看看这篇文章。它提供了一个相当简单的解决方案来检测帧并打破它们。

如何使用 JavaScript 打破框架

此外,我会更进一步。每当您检测到框架时,获取违规站点框架的附属 ID,然后使用 AJAX 将其连同他们使用的 URL 一起推送到服务器。然后,无论是自动还是手动,您都可以验证他们是否在构建您的网站,并一次取消他们的会员代码。

于 2009-01-20T01:21:31.247 回答
0

只是在这里猜测......但是如果你使用 javascript 调用你的父窗口来访问它的文档对象呢?你可以检查它是否不为空,如果有一个父窗口(意味着一个框架加载了你的网站),你可以通过 javascript 隐藏你所有的 html...

于 2009-01-20T01:20:39.020 回答