這篇文章給大家分享的是有關怎么使用PHP獲取referer判斷來路防止非法訪問的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

我們提供的服務有:網站制作、網站建設、微信公眾號開發、網站優化、網站認證、肅北ssl等。為上1000家企事業單位解決了網站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的肅北網站制作公司
下載頁面down.php 的php代碼 現在我發現,用迅雷,谷歌瀏覽器直接打開,就能輸出下載文件,一點不起防盜鏈作用。 現在我想,只允許在我自己站上連接過來的可以直接使用,別的的站過來的,和直接輸入這個地址的,跳轉到copy.htm頁上去。
PHP中的 $_SERVER["HTTP_REFERER"] 預定義服務器變量可以判斷來路。
$_SESSION['HTTP_REFERER']可以獲取當前鏈接的上一個連接的來源地址,即鏈接到當前頁面的前一頁面的 URL 地址。
一般用于判斷瀏覽者是從哪里點擊鏈接跳到本頁面的,即所說的來路,還可以通過判斷來路來防止盜鏈。
例如:
<?php
$url_array = parse_url($_SESSION['HTTP_REFERER']);
//如果頁面的域名不是服務器域名,就連接到登陸窗口
if($_SERVER['HTTP_HOST'] != $url_array["host"]) {
header("location: login.php");
exit;
}
?>近期有個項目需要用到防止用戶非法訪問某json頁面,基礎解決方法就是判斷來路來限制非調用訪問:
$_SERVER[‘HTTP_REFERER’]:來路鏈接,可能帶尾巴(如:
可以通過php內置函數parse_url()來獲取到當前網址(www.httple.net),即:
$refererUrl = parse_url($_SERVER[‘HTTP_REFERER’]);
$host = $refererUrl[‘host’];
$host的值即為來路的網址(www.httple.net)。
獲取到了來路的網址之后,我們就可以通過這個網址來限制訪問該頁面的權限了。代碼如下:
if(!isset($_SERVER[‘HTTP_REFERER’]) || $referurl[‘host’] !=”www.httple.net”) { header(“location: /”);
//如果沒有來路,或者來路不是本站,跳轉到首頁。 exit; }把這行代碼放到json數據頁面的最上方,就能簡單解決該問題。
該處理方法的缺陷:可通過偽造來路獲取到該頁面的正常數據。
相關代碼
獲取來路Url 的方法,主要用到服務器變量中HTTP_REFERER函數的使用,代碼貼上:
function get_referer(){
$url = $_SERVER["HTTP_REFERER"]; //獲取完整的來路URL
$str = str_replace("http://","",$url); //去掉http://
$strdomain = explode("/",$str); // 以“/”分開成數組
$domain = $strdomain[0]; //取第一個“/”以前的字符
return $domain;
}
//對于百度、谷歌搜索引擎來路判斷
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網站 獲取來路Url 的方法,主要用到服務器變量中HTTP_REFERER函數的使用,代碼貼上:
function get_referer(){
$url = $_SERVER["HTTP_REFERER"]; //獲取完整的來路URL
$str = str_replace(“http://”,””,$url); //去掉http://
$strdomain = explode(“/”,$str); // 以“/”分開成數組
$domain = $strdomain[0]; //取第一個“/”以前的字符
return $domain;
}
//對于百度、谷歌搜索引擎來路判斷
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;
}在處理一個表單的時候,不得不考慮到用戶靜態提交的可能,discuz 已經根據formhash來判斷
這里我用另一種方式來處理 判斷頁面來路,當然這種方法也能夠被偽造HTTP_REFERER來路
第二部分是解決了 PHP中header('location:跳轉頁面后 下一頁無法獲取HTTP_REFERER,這里只能在頁面加個鏈接 然后用js 模擬點擊鏈接,這樣下一頁肯定會收到HTTP_REFERER的。Keyword:document.getElementById('gourl').click();
感謝各位的閱讀!關于“怎么使用PHP獲取referer判斷來路防止非法訪問”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
分享標題:怎么使用PHP獲取referer判斷來路防止非法訪問
文章網址:http://www.yijiale78.com/article26/pcppcg.html
成都網站建設公司_創新互聯,為您提供網站內鏈、自適應網站、App設計、外貿建站、移動網站建設、營銷型網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯