首頁  >  文章  >  後端開發  >  php實作博客,論壇圖片防盜鏈的方法

php實作博客,論壇圖片防盜鏈的方法

墨辰丷
墨辰丷原創
2018-05-31 16:51:122054瀏覽

這篇文章主要介紹了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則通過,不是則不執行。是一樣的原理吧!

總結:以上就是這篇文章的全部內容,希望能對大家的學習有所幫助。

相關推薦:

redis在php下面的命令大全

PHP引用變數知識詳解

PHP的耦合設計模式

以上是php實作博客,論壇圖片防盜鏈的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn