最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

php獲取referer防非法訪問(wèn)

 更新時(shí)間:2021年08月04日 10:35:35   作者:云博客  
這篇文章主要介紹了php獲取referer防非法訪問(wèn),本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下

面是我下載頁(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)防止盜鏈。
例如:

<?php

$url_array = parse_url($_SESSION['HTTP_REFERER']); 
//如果頁(yè)面的域名不是服務(wù)器域名,就連接到登陸窗口 
if($_SERVER['HTTP_HOST'] != $url_array["host"]) { 
header("location: login.php"); 
exit; 
} 

?>

相關(guān)代碼

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

$_SERVER[‘HTTP_REFERER']:來(lái)路鏈接,可能帶尾巴(如:http://www.httple.net/iwork/20.html),可以通過(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防非法訪問(wèn)的文章就介紹到這了,更多相關(guān)php放置非法訪問(wèn)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • PHP導(dǎo)航下拉菜單的實(shí)現(xiàn)如此簡(jiǎn)單

    PHP導(dǎo)航下拉菜單的實(shí)現(xiàn)如此簡(jiǎn)單

    PHP導(dǎo)航下拉菜單的實(shí)現(xiàn)對(duì)于很多朋友來(lái)說(shuō)還是有一定的難度的,下面有個(gè)不錯(cuò)的示例,感興趣的朋友可以參考下,希望對(duì)大家有所幫助
    2013-09-09
  • PHP網(wǎng)站開(kāi)發(fā)中常用的8個(gè)小技巧

    PHP網(wǎng)站開(kāi)發(fā)中常用的8個(gè)小技巧

    這篇文章主要介紹了PHP網(wǎng)站開(kāi)發(fā)中常用的8個(gè)小技巧,本文講解了命名、使用、PHP判斷Form表單是否提交、PHP 獲取字符串長(zhǎng)度、PHP超全局對(duì)象等內(nèi)容,需要的朋友可以參考下
    2015-02-02
  • PHP生成壓縮文件實(shí)例

    PHP生成壓縮文件實(shí)例

    這篇文章主要介紹了PHP生成壓縮文件實(shí)例,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2015-02-02
  • IIS6.0 開(kāi)啟Gzip方法及PHP Gzip函數(shù)分享

    IIS6.0 開(kāi)啟Gzip方法及PHP Gzip函數(shù)分享

    因?yàn)樵谧鲆粋€(gè)項(xiàng)目,項(xiàng)目里面服務(wù)器主要提供數(shù)據(jù),但是數(shù)據(jù)多了文件就大了,比較浪費(fèi)流量和時(shí)間,我們便用Gzip來(lái)處理。我在本機(jī)上是apache,服務(wù)器上是IIS6.0,用的是php,那么我就在這里分享一下。
    2014-06-06
  • Yii2中DropDownList簡(jiǎn)單用法示例

    Yii2中DropDownList簡(jiǎn)單用法示例

    這篇文章主要介紹了Yii2中DropDownList簡(jiǎn)單用法,實(shí)例分析了DropDownList下拉列表的基本調(diào)用方法,需要的朋友可以參考下
    2016-07-07
  • PHP微信公眾號(hào)自動(dòng)發(fā)送紅包API

    PHP微信公眾號(hào)自動(dòng)發(fā)送紅包API

    微信發(fā)紅包已經(jīng)成為當(dāng)今比較流行的祝福形式,大家都學(xué)著使用微信發(fā)紅包,這篇文章主要為大家詳細(xì)介紹了PHP微信公眾號(hào)自動(dòng)發(fā)送紅包API,感興趣的小伙伴們可以參考一下
    2016-06-06
  • php注冊(cè)和登錄界面的實(shí)現(xiàn)案例(推薦)

    php注冊(cè)和登錄界面的實(shí)現(xiàn)案例(推薦)

    下面小編就為大家?guī)?lái)一篇php注冊(cè)和登錄界面的實(shí)現(xiàn)案例(推薦)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-10-10
  • Yii框架中jquery表單驗(yàn)證插件用法示例

    Yii框架中jquery表單驗(yàn)證插件用法示例

    這篇文章主要介紹了Yii框架中jquery表單驗(yàn)證插件用法,結(jié)合實(shí)例形式分析了Yii框架中使用jquery表單驗(yàn)證插件進(jìn)行手機(jī)、郵箱等輸入信息驗(yàn)證的相關(guān)操作技巧,需要的朋友可以參考下
    2016-10-10
  • PHP魔術(shù)方法的使用示例

    PHP魔術(shù)方法的使用示例

    這篇文章主要介紹了PHP魔術(shù)方法的使用示例,本文分別講解了__get、__set、__call、__callStatic、__toString、 __invoke等魔術(shù)方法的使用,需要的朋友可以參考下
    2015-06-06
  • TP3.2.3框架文件上傳操作實(shí)例詳解

    TP3.2.3框架文件上傳操作實(shí)例詳解

    這篇文章主要介紹了TP3.2.3框架文件上傳操作,結(jié)合實(shí)例形式詳細(xì)分析了thinkPHP3.2.3框架文件上傳相關(guān)原理、實(shí)現(xiàn)方法與操作注意事項(xiàng),需要的朋友可以參考下
    2020-01-01

最新評(píng)論

德江县| 彭阳县| 墨江| 安平县| 临海市| 肃宁县| 广水市| 南平市| 龙海市| 东阿县| 正宁县| 谢通门县| 南阳市| 砚山县| 平湖市| 夏津县| 济源市| 武安市| 台前县| 郑州市| 贵州省| 祥云县| 新乡市| 昆明市| 通许县| 巴里| 承德市| 灌南县| 开平市| 内江市| 宝鸡市| 彭水| 霸州市| 酒泉市| 中山市| 洛宁县| 于都县| 海口市| 九寨沟县| 巴中市| 汶川县|