2017-02-13 60 views
0

我不是问正规军“在我的域名执行PHP,并得到URL”,但这个执行了哪些网址:怎么看我的PHP上

我从PHP显示图像,在这里:http://myservice.com/ShowImage.php?Id=10

所以鲍比谁运行一个网站BobbyBlog.net可以在他的博客使用此图片,如:

<img src=http://myservice.com/ShowImage.php?Id=10> 

我想知道鲍比已经装上他的网站的形象,所以我需要在我ShowImage.php脚本拦截会“BobbyBlog.net”字符串。恐怕这是不可能的,因为图像请求与Bobby博客分离。你怎么看?

回答

0

据我所知,没有办法捕捉哪个站点执行脚本,就像你要求的那样。服务器变量$_SERVER['HTTP_REFERER']设置引用页面(引用您的页面),但我认为在这种情况下不会有任何值。如果我没有弄错,大多数编程语言就是这种情况,因为这取决于Web服务器级别,而不是编程语言。这意味着你不能简单地使用Python或Perl,并期望它工作。

编辑:在网络服务器级别,这应该是可能的。链接到来自其他网站的图像通常称为盗链。有几条关于如何禁用它的指南。 Here is one for Apache

编辑2:深入探讨问题,看起来好像你可以检查$_SERVER['HTTP_REFERER']的值。这在this related SO question中描述。它还提到,如果通过HTTPS发送,这是不可能的,并且该值可能被欺骗。在这些情况下,无法知道原点。希望能帮助到你。

+0

服务器级别上必须有某些东西,或者某些网站如何通过在img标签中引用它们来防止加载图像? - 处理这个.htaccess也许? – Maxitrol

+0

@Maxitrol是的。这被称为盗链。我在我的原始答案中找到了一个教程。我希望它有帮助。如果您觉得我的回答对您有帮助,请接受我的回答。 – OptimusCrime

+0

您的解决方案很有趣,但它只是阻止盗链。我想做的事(看我原来的问题)是我想知道谁试图从我的网站显示图像。因此,如果你从“Optimuscrime.com/blog.html”热链接,我想抓住该URL并保存它......不知何故,我应该改变这个.htaccess指令,以包括已经建立了热链接的网站的URL。 – Maxitrol