這篇文章主要介紹了php實現部落格,論壇圖片防盜鏈的方法,涉及php字串結合session判定圖片的相關操作技巧,需要的朋友可以參考下
防盜鏈的方式很多,我這裡就說說我對放盜鏈的理解,這個跟防止遠程提交是一個原理。
先介紹一個函數
uniqid(string);//這個函數的作用,是在你添加的字串後面隨即添加一個獨一無二ID字串。
如果你還不放心,你可以給這個函輸出的字串再用SHA1()函數進行加密。
這樣我們得到了一個獨一無二,且只有你自己知道的字串,用來做數字簽證。接下來是如何檢測這個數字簽證。
function has($string){if(!isset($string) || $string != $_SESSION["uniqid"]){exit;}}//上面這個函數的意思是如果不存在字串$string或者字串不等於$_SESSION["uniqid"];//則不執行下面的部分。
檢測數字簽證的函數以後寫好了。接下來是怎麼做了。都知道網頁是從最頂部一直執行下來的。只要在頂部生出數字簽證,在下面的函數中進行驗證就可以了。
session_start(); //開去session功能$uniqid = uniqid("dwz");$_SESSION["uniqid"] = $uniqid;//執行代碼has($uniqid); //進行數字驗證
上面的最簡答的防盜鏈的方式就完成了。回到正題,怎麼防止圖片的盜鏈?
這個更簡答。當我們查看網站圖片源碼的時候會發現,儲存圖片有二種路徑:一種是相對路徑,一種是絕對路徑。
相對路徑的意思是:圖片在你的伺服器上面。
覺得路徑的意思是:圖片可以在你的伺服器上面,也可以不在你的伺服器上面。
如果不在你的伺服器上面,那就有一個URL地址或者IP地址。這個就是我們防盜的關鍵所在。
$_SERVER['HTTP_HOST'];//這樣就可以擷取伺服器的url。但這個可以直接用代碼修改.
擷取發送請求URL這樣,就可以進行驗證,如果是你的URL則通過,不是則不執行。是一樣的原理吧!
總結:以上就是本篇文的全部內容,希望能對大家的學習有所協助。