真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

怎么使用PHP獲取referer判斷來(lái)路防止非法訪問(wèn)

這篇文章給大家分享的是有關(guān)怎么使用PHP獲取referer判斷來(lái)路防止非法訪問(wèn)的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。

我們提供的服務(wù)有:網(wǎng)站制作、網(wǎng)站建設(shè)、微信公眾號(hào)開(kāi)發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、肅北ssl等。為上1000家企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的肅北網(wǎng)站制作公司

下載頁(yè)面down.php 的php代碼 現(xiàn)在我發(fā)現(xiàn),用迅雷,谷歌瀏覽器直接打開(kāi),就能輸出下載文件,一點(diǎn)不起防盜鏈作用。 現(xiàn)在我想,只允許在我自己站上連接過(guò)來(lái)的可以直接使用,別的的站過(guò)來(lái)的,和直接輸入這個(gè)地址的,跳轉(zhuǎn)到copy.htm頁(yè)上去。

PHP中的 $_SERVER["HTTP_REFERER"] 預(yù)定義服務(wù)器變量可以判斷來(lái)路。

$_SESSION['HTTP_REFERER']可以獲取當(dāng)前鏈接的上一個(gè)連接的來(lái)源地址,即鏈接到當(dāng)前頁(yè)面的前一頁(yè)面的 URL 地址。
一般用于判斷瀏覽者是從哪里點(diǎn)擊鏈接跳到本頁(yè)面的,即所說(shuō)的來(lái)路,還可以通過(guò)判斷來(lái)路來(lái)防止盜鏈。
例如:

近期有個(gè)項(xiàng)目需要用到防止用戶非法訪問(wèn)某json頁(yè)面,基礎(chǔ)解決方法就是判斷來(lái)路來(lái)限制非調(diào)用訪問(wèn):

$_SERVER[‘HTTP_REFERER’]:來(lái)路鏈接,可能帶尾巴(如: 
可以通過(guò)php內(nèi)置函數(shù)parse_url()來(lái)獲取到當(dāng)前網(wǎng)址(www.httple.net),即:
$refererUrl = parse_url($_SERVER[‘HTTP_REFERER’]);
$host = $refererUrl[‘host’];
$host的值即為來(lái)路的網(wǎng)址(www.httple.net)。
獲取到了來(lái)路的網(wǎng)址之后,我們就可以通過(guò)這個(gè)網(wǎng)址來(lái)限制訪問(wèn)該頁(yè)面的權(quán)限了。代碼如下:
if(!isset($_SERVER[‘HTTP_REFERER’]) || $referurl[‘host’] !=”www.httple.net”) { header(“l(fā)ocation: /”); 
//如果沒(méi)有來(lái)路,或者來(lái)路不是本站,跳轉(zhuǎn)到首頁(yè)。 exit; }

把這行代碼放到j(luò)son數(shù)據(jù)頁(yè)面的最上方,就能簡(jiǎn)單解決該問(wèn)題。

該處理方法的缺陷:可通過(guò)偽造來(lái)路獲取到該頁(yè)面的正常數(shù)據(jù)。

相關(guān)代碼

獲取來(lái)路Url 的方法,主要用到服務(wù)器變量中HTTP_REFERER函數(shù)的使用,代碼貼上:

function get_referer(){   
$url = $_SERVER["HTTP_REFERER"]; //獲取完整的來(lái)路URL   
$str = str_replace("http://","",$url); //去掉http://   
$strdomain = explode("/",$str); // 以“/”分開(kāi)成數(shù)組   
$domain = $strdomain[0]; //取第一個(gè)“/”以前的字符  
return $domain;  
}   

//對(duì)于百度、谷歌搜索引擎來(lái)路判斷   
function get_seo(){  
$s = 0;   
if(strstr(get_referer(),'baidu.com')){   
$s = 1;   
}   
else if(strstr(get_referer(),'google.com.hk')){   
$s = 1;   
}   
return $se;    
}

php網(wǎng)站 獲取來(lái)路Url 的方法,主要用到服務(wù)器變量中HTTP_REFERER函數(shù)的使用,代碼貼上:

function get_referer(){
$url = $_SERVER["HTTP_REFERER"]; //獲取完整的來(lái)路URL
$str = str_replace(“http://”,””,$url); //去掉http://
$strdomain = explode(“/”,$str); // 以“/”分開(kāi)成數(shù)組
$domain = $strdomain[0]; //取第一個(gè)“/”以前的字符
return $domain;
}

//對(duì)于百度、谷歌搜索引擎來(lái)路判斷
function get_seo(){
$s = 0;
if(strstr(get_referer(),’baidu.com’)){
$s = 1;
}
else if(strstr(get_referer(),’google.com.hk’)){
$s = 1;
}
return $se;
}

在處理一個(gè)表單的時(shí)候,不得不考慮到用戶靜態(tài)提交的可能,discuz 已經(jīng)根據(jù)formhash來(lái)判斷

這里我用另一種方式來(lái)處理 判斷頁(yè)面來(lái)路,當(dāng)然這種方法也能夠被偽造HTTP_REFERER來(lái)路

第二部分是解決了 PHP中header('location:跳轉(zhuǎn)頁(yè)面后 下一頁(yè)無(wú)法獲取HTTP_REFERER,這里只能在頁(yè)面加個(gè)鏈接 然后用js 模擬點(diǎn)擊鏈接,這樣下一頁(yè)肯定會(huì)收到HTTP_REFERER的。Keyword:document.getElementById('gourl').click();

感謝各位的閱讀!關(guān)于“怎么使用PHP獲取referer判斷來(lái)路防止非法訪問(wèn)”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!


當(dāng)前題目:怎么使用PHP獲取referer判斷來(lái)路防止非法訪問(wèn)
分享地址:http://weahome.cn/article/pcppcg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部