簡體   English   中英

如何防止 URL 直接訪問?

[英]How to Prevent Direct URL Access?

請幫我解決盜鏈問題,如何防止直接訪問此 URL 並將訪問者重定向到 index.php:

http://www.example.com/index.php?link=http://www.anysite.com/dir/file&name=on&email=on&submit=on

你在尋找這樣的東西:

if(!strpos('mysite.com',$_SERVER["HTTP_REFERER"])) header('Location: index.php')

為了回答這個問題,我假設您不在乎同一個用戶是否多次訪問它(假設第一次訪問是通過主索引頁面進行的)。 這也假設用戶將接受 cookies。

在主索引頁面上時:

  1. 在 index.php 上啟動 session
  2. 在他們的 session 中放入一些隨機值。 例如:md5(microtime()) = af1929191...
  3. 還將該隨機值放入每個 url 作為另一個參數,例如: index.php?verify=af19...&link=http://foo.com

加載 url 時:

  1. 檢查是否設置了“驗證”參數(如果不存在),將它們重定向回主索引頁面。 或者更有幫助的是,因為您正在創建一個奇怪的行為,所以向他們顯示一條錯誤消息,說明您在做什么以及為什么。
  2. 啟動 session 並確保其 session 中的值與 url 中的值匹配。

使用 htaccess 文件是解決此問題的常見方法:
來自http://altlab.com/htaccess_tutorial.html
此代碼特別重定向任何試圖熱鏈接圖像的人。

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?mysite\.com/ [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteRule .*\.(jpe?g|gif|bmp|png)$ http://img148.imageshack.us/img148/237/hotlinkp.gif [L]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM