自己的解析接口,总是被人套用,或者被人iframe嵌套非法引用,有什么办法可以防止别人盗用自己的播放解析接口吗? 最近有人直接盗用我的解析接口,通过iframe嵌套我的播放器,并且伪造referrer,来突破我设置的referrer防盗链,刚好看到一篇文章,讲如何防止网页被iframe嵌套,这里就记录一下。 防止页面被嵌套HTTP协议头里增加X-Frame-Options这一项。 X-Frame-Options的值有三个: DENY:表示该页面不允许在 frame 中展示,即便是在相同域名的页面中嵌套也不允许。 SAMEORIGIN:表示该页面可以在相同域名页面的 frame 中展示。 ALLOW-FROM uri:表示该页面可以在指定来源的 frame 中展示。
服务器配置nginx 在配置文件的 http 、server 或者 location 中加入如下代码,来防止被嵌套。下方的代码表示网页可以在相同域名页面的 frame 中展示。 add_header X-Frame-Options "SAMEORIGIN"; add_header X-Frame-Options "ALLOW-FROM https://example.com/";
Apache 在 Apache 的配置文件的 site 中添加如下配置,表示网页可以在相同域名页面的 frame 中展示。 Header always append X-Frame-Options SAMEORIGIN Header always append X-Frame-Options "ALLOW-FROM https://example.com/"
htaccess 将如下代码加入网站根目录的 .htaccess 文件中,效果相同。表示网页可以在相同域名页面的 frame 中展示。 Header append X-FRAME-OPTIONS "SAMEORIGIN" Header append X-FRAME-OPTIONS "ALLOW-FROM https://example.com/"
IIS 将网站根目录的web.config配置文件做如下修改,来禁止网站被嵌套。 <system.webServer> ... <httpProtocol> <customHeaders> <add name="X-Frame-Options" value="SAMEORIGIN" /> </customHeaders> </httpProtocol> ...</system.webServer>
meta 标签X-Frame-Options HTTP响应头是用来确认是否浏览器可以在frame或iframe标签中渲染一个页面,网站可以用这个头来保证他们的内容不会被嵌入到其它网站中,以来避免点击劫持。 <meta http-equiv="X-FRAME-OPTIONS" content="DENY"> 以 PHP 为例,在文件中添加下面的代码即可。 <?php header(‘X-Frame-Options  eny'); ?>
总结mete标签也有通过JS判断来绕过去的,这里还是推荐使用方案1吧,通过服务器配置更合理。 |