Nginx的 – 防止.php文件运行在任何东西,但你自己的服务器/域?

我们有一个MP3播放器,通过一个iFrame运行,而不是我们的select,但多数民众赞成我们如何坚持下去。 我们希望阻止其他人在他们的网站上embeddediframe。

什么是最好的方法来做到这一点? 我们正在运行nginx,所以没有.htaccess。 MP3播放器是由PHP文件组成,我们需要继续在iframe中运行它。

反正有locking特定的MP3播放器的PHP文件(在这种情况下html5player.php)只能够在我们的服务器或域名执行? 在nginx中肯定有办法做到这一点? 但是,当然,如果他们embedded的iFrame它会认为它是在我们的服务器运行不pipe呢?

我想到的所有解决scheme都在某个地方跌倒了,所以非常感激。

听起来像X-Frame-Options标题的作业:

add_header X-Frame-Options SAMEORIGIN; 

(显然,应用于与所述文件相匹配的位置)

您也可以在PHP中添加标题,这可能会更容易。

确保只添加标题一次,否则会被某些浏览器忽略,debugging时会造成很多“乐趣”。 查看Chrome的错误报告 ,Firefox的错误报告 。

我不是NGINX的专家,但是这在理论上可以工作:

位置〜* \ urltoyourplayer?$ {
   valid_referers没有阻止yourdomain.fqdn;
     if($ invalid_referer){
      返回403;
     }
 }

这应该防止通过阅读引荐来源URL将您的播放器embedded到其他网站,如果它匹配您的域然后确定,否则返回错误403。