這篇文章主要介紹了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則通過,不是則不執行。是一樣的原理吧!
總結:以上就是這篇文章的全部內容,希望能對大家的學習有所幫助。
相關推薦:
以上是php實作博客,論壇圖片防盜鏈的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!