2017-02-13 63 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