摘要:本文實(shí)例講述了php實(shí)現(xiàn)博客,論壇圖片防盜鏈的方法。分享給大家供大家參考,具體如下:防盜鏈的方式很多,我這里就說(shuō)說(shuō)我對(duì)放盜鏈的理解,這個(gè)跟防止遠(yuǎn)程提交是一個(gè)原理。先介紹一個(gè)函數(shù)uniqid(string); //這個(gè)函數(shù)的作用,是在你添加的字符串后面隨即添加一個(gè)獨(dú)一無(wú)二ID字符串。如果你還不放心,你可以給這個(gè)函輸出的字符串再用SHA1()函數(shù)進(jìn)行加密。這樣我們得到了一個(gè)獨(dú)一無(wú)二,且只有你自己知道的
本文實(shí)例講述了php實(shí)現(xiàn)博客,論壇圖片防盜鏈的方法。分享給大家供大家參考,具體如下:
防盜鏈的方式很多,我這里就說(shuō)說(shuō)我對(duì)放盜鏈的理解,這個(gè)跟防止遠(yuǎn)程提交是一個(gè)原理。
先介紹一個(gè)函數(shù)
uniqid(string); //這個(gè)函數(shù)的作用,是在你添加的字符串后面隨即添加一個(gè)獨(dú)一無(wú)二ID字符串。
如果你還不放心,你可以給這個(gè)函輸出的字符串再用SHA1()函數(shù)進(jìn)行加密。
這樣我們得到了一個(gè)獨(dú)一無(wú)二,且只有你自己知道的字符串,用來(lái)做數(shù)字簽證。接下來(lái)是如何檢測(cè)這個(gè)數(shù)字簽證。
function has($string) { if(!isset($string) || $string != $_SESSION["uniqid"]) { exit; } }
//上面這個(gè)函數(shù)的意思是如果不存在字符串$string或者字符串不等于$_SESSION["uniqid"];
//則不執(zhí)行下面的部分。
檢測(cè)數(shù)字簽證的函數(shù)以后寫好了。接下來(lái)是怎么做了。都知道網(wǎng)頁(yè)是從最頂部一直執(zhí)行下來(lái)的。只要在頂部生出數(shù)字簽證,在下面的函數(shù)中進(jìn)行驗(yàn)證就可以了。
session_start(); //開(kāi)去session功能 $uniqid = uniqid("dwz"); $_SESSION["uniqid"] = $uniqid; //執(zhí)行代碼 has($uniqid); //進(jìn)行數(shù)字驗(yàn)證
上面的最簡(jiǎn)答的防盜鏈的方式就完成了?;氐秸},怎么防止圖片的盜鏈?
這個(gè)更簡(jiǎn)答。當(dāng)我們查看網(wǎng)站圖片源碼的時(shí)候會(huì)發(fā)現(xiàn),存儲(chǔ)圖片有二種路徑:一種是相對(duì)路徑,一種是絕對(duì)路徑。
相對(duì)路徑的意思是:圖片在你的服務(wù)器上面。
覺(jué)得路徑的意思是:圖片可以在你的服務(wù)器上面,也可以不在你的服務(wù)器上面。
如果不在你的服務(wù)器上面,那就有一個(gè)URL地址或者IP地址。這個(gè)就是我們防盜的關(guān)鍵所在。
$_SERVER['HTTP_HOST'];
//這樣就可以獲取服務(wù)器的url。但這個(gè)可以直接用代碼修改.
獲取發(fā)送請(qǐng)求URL這樣,就可以進(jìn)行驗(yàn)證,如果是你的URL則通過(guò),不是則不執(zhí)行。是一樣的原理吧!
更多關(guān)于php實(shí)現(xiàn)博客,論壇圖片防盜鏈的方法請(qǐng)關(guān)注PHP中文網(wǎng)(www.miracleart.cn)其它文章!