如何禁止框架

Tru*_*ufa 9 html javascript security iframe

我最近注意到"出于安全原因"堆栈溢出不允许框架.

1)这是怎么做到的?(不是特定情况!我的意思是技术/语言等,出于某种原因,我猜是js)

2)它实际上是避免它还是仅仅是警告(有点像客户端验证)

3)是否应该这样做或者是否有特定的理由这样做,并且在大多数情况下不是必要的(这是我第一次见到它)

提前致谢!!!

Mic*_*sen 9

1)帧破坏始终在客户端上完成:由于服务器永远不会被告知要求在页面中使用页面,因此必须在客户端完成.最近的浏览器支持一个名为X-Frame-Options的特殊HTTP标头,以防止在框架中显示页面,但是为了删除框架或旧浏览器版本,您需要Javascript.(感谢ide指出这个!)

2)假设您不使用HTTP标头,那么如果关闭Javascript,则框架将保留.没有办法解决这个问题,因为它必须在客户端发生.

3)几年前它实际上相当普遍,虽然现在看来大多数网站都停止使用它.您可能仍然使用它的一个原因是防止点击劫持.

现在,碰巧框架破坏可能被破坏,实际上还有一个关于如何破坏破坏框架的破坏者的问题 - 目前正在使用这种反框架破坏.

(当然,可能是这种反框架破坏本身可以被破坏的情况,在这种情况下可能有一种方法来破坏反框架破坏的破坏者,我敢肯定你看到哪里这是.)

  • Frame*busting*需要JS,但不允许使用IE8引入的X-Frame-Options HTTP标头来实现框架.您应该同时拥有传统支持的反框架技术,但所有现代浏览器都支持X-Frame-Options:https://developer.mozilla.org/en/the_x-frame-options_response_header. (3认同)