程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php實現博客,論壇圖片防盜鏈的方法,

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

編輯:關於PHP編程

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


本文實例講述了php實現博客,論壇圖片防盜鏈的方法。分享給大家供大家參考,具體如下:

防盜鏈的方式很多,我這裡就說說我對放盜鏈的理解,這個跟防止遠程提交是一個原理。

先介紹一個函數

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 curl用法總結》、《PHP圖形與圖片操作技巧匯總》、《PHP數組(Array)操作技巧大全》、《PHP常用遍歷算法與技巧總結》、《PHP數據結構與算法教程》、《php程序設計算法總結》、《php正則表達式用法總結》、《PHP運算與運算符用法總結》、《php字符串(string)用法總結》及《php常見數據庫操作技巧匯總》

希望本文所述對大家PHP程序設計有所幫助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved