阻止其他站点通过iFrame显示我的站点

时间:2017-04-23 作者:Shay S

现在,任何人都可以使用<iframe> 标签

请参见示例:

<iframe src="http://example.com/" width="1000" height="1800" frameborder="0" scrolling="no"></iframe>
我如何阻止网站这样做?

我更喜欢使用代码而不是插件,谢谢你,谢伊。

1 个回复
SO网友:fuxia

WordPress有一个内置的函数来发送X-Frame-Options 标题:send_frame_options_header(). 是的used by default on the login and admin pages.

如果要始终启用它,只需将其添加到前端视图:

add_action( \'template_redirect\', \'send_frame_options_header\' );
但是…它不发送Content-Security-Policy headers. 如果你想more complete solution 并禁用任何帧,即使来自同一站点,也可以使用:

function no_frame_headers()
{
    header( "X-Frame-Options: DENY", true );
    header( "Content-Security-Policy: frame-ancestors \'none\'", true );
}
然后注册回调:

add_action( \'login_init\',        \'no_frame_headers\', 1000 );
add_action( \'admin_init\',        \'no_frame_headers\', 1000 );
add_action( \'template_redirect\', \'no_frame_headers\', 1000 );
当然,这必须进入插件。

相关推荐

Bootstrap主题嵌入的iFrame失真

我试图在页面上嵌入视频,但它们显示的都是伸展的。Here\'s what it should look like, 和this is what it currently looks like.以下是我的嵌入代码:<iframe width=\"100%\" src=\"https://www.youtube.com/embed/Fj5O0V9WWug?rel=0\" frameborder=\"0\" allow=\"autoplay; encrypted-media\" allowfullscre