php實現部落格,論壇圖片防盜鏈的方法

來源:互聯網
上載者:User
這篇文章主要介紹了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則通過,不是則不執行。是一樣的原理吧!

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.