绕过iframe沙箱?

时间:2015-10-30 13:01:28

标签: javascript jquery html html5

有人在使用

编写我的网站
<iframe src="http://example.org" sandbox=""></iframe> 

这样,沙箱属性会阻止我的网站在其上使用iframe拦截器。它可以很容易地被打造。

我网站上的帧破坏者:

if (window.top !== window.self) window.top.location.replace(window.self.location.href);

当与沙盒属性一起使用时,是否有一种编程方式重定向到我的网站?

3 个答案:

答案 0 :(得分:17)

可以通过@Query(select distinct u from User u inner join u.phone ph where ph.active=:active) Page<User> getAllUsers(@Param("active") int active); 响应标头保护iframing,设置X-Frame-Options X-Frame-Optionsvalue="DENY" X-Frame-Options。通过此响应标头设置,您可以保护您的网站免受IFraming或Clickjack攻击。

设置value="SAMEORIGIN"响应标头后,浏览器会收到标准消息,例如&#34;此内容无法显示在框架中#34;。

答案 1 :(得分:10)

sandbox属性正在关闭所有javascript等等。这就是为什么你的帧破坏者无法工作,也没有任何其他人提供的。

W3说沙箱:

  • 在iframe
  • 中禁止/禁用脚本
  • 在iframe中禁止/禁用其他浏览上下文的链接

测试显示该属性还会禁用元重定向以及突破iframe的任何标准链接。

有了这种严格性,如果可以进行重定向,我会感到非常惊讶,因为那会破坏沙盒的位置。

我可以建议的最好方法是使用noscript标记向用户在沙盒iframe中查看页面时显示一条消息。你可以设计风格,这样人们就无法看到你的内容。

(如果只是一个网站存在问题,那么使用htaccess阻止它们可能是更好的方法)

答案 2 :(得分:1)

@SudiptaKumarMaiti对X-Frame-Options的回答有效,但正在被内容安全策略(CSP)第2级取代 - 特别是frame-ancestors directive

要完全禁止框架(类似于X-Frame-Options: DENY),请使用此HTTP标头:

Content-Security-Policy: frame-ancestors 'none';