php禁止代理訪問
這個與PHP無關,是WEB伺服器需要設置,這個功能叫做索引(INDEX),關閉這個功能就可以了,例如APACHE修改httpd.conf文件,在Options語句後面的index刪除。
㈡ PHPCMS怎麼禁止指定網站訪問
知道對方網站的域名,ping一下拿到IP地址,將IP地址填在後台擴展裡面的ip禁止裡面就行了。
㈢ 如何禁止網站被反向代理
在前幾天兩個站點被別人完全境像代理,基本上就是直接讓他給復制過去了,我也是醉了,直接鏡像過去,然後再緩存到他自己的伺服器上面,真是絕了,你自己的站點再加什麼代理去反代理也不管用了,因為他的站點根本就不變,使用了 .htaccess 來反代理,也使用了 js 判斷域名都不管用,所以我一直在判斷他使用了緩存機制,如果不使用緩存,時時代理的話肯定是可以的,我先把這兩種方法來總結一下吧。
一、使用 .htaccess 禁止反向代理
在站點根目錄下新建 .htaccess 文件,然後添加如下的內容:
RewriteEngine On
RewriteBase /
php_value auto_append_file proxy.php
再新建 proxy.php 文件,添加如下代碼保存.
<?php
$f = getenv("HTTP_X_FORWARDED_FOR");
$url = "https://www.xiariboke.com";
if ($f!=""){
print "「;
print 「「;
}
?>
二、使用 js 代碼判斷域名
<script type="text/javascript">
if (document.domain != 'xiariboke.com' && document.domain != 'www.xiariboke.com'){
window.location.href='http://www.xiariboke.com/';
}
</script>
這種是首先判斷他的域名是不是 xiariboke.com 這個域名,如果是則正常訪問,如果不是則跳轉到原網站。
三、使用 php 判斷域名
這種方法跟使用 js 代碼來跳轉域名是一個道理,都是先判斷域名,如果是代理的域名則進行跳轉,代碼如下:
<P><?php </P>
<P>if($_SERVER['SERVER_NAME'] != 'xiariboke.com' ||$_SERVER['SERVER_NAME'] != 'www.xiariboke.com' )
{
exit('非法反向代理訪問');
}</P>
<P>?></P>
如果是時時代理的話,上面三種方法就已經足夠了,但如果他使用了緩存,將代理的網站緩存到他自己的伺服器上面,再使用這些就不管用了,因他被他代理的站都不更新了,你再怎麼改都不行,尤其現在的阿里雲CDN,360CDN又怎麼牛,而我的站點使用的就是阿里雲CDN,上面有個防止外鏈,把防外鏈給開啟才解決。
一般的網站CSS,JS調用基本上用的都是絕對路徑,所以我們可以重命名CSS,JS的文件包以達到對別人境像網站的控制,把他的頁面搞亂,這樣相信堅持不了幾天,他就會換成其它網站了。
㈣ php中如何禁止用戶直接訪問某個目錄或者文件,但是前提肯定是程序要能訪問執行的
緩存是指臨時文件交換區,電腦把最常用的文件從存儲器里提出來臨時放在緩存里,就像把工具和材料搬上工作台一樣,這樣會比用時現去倉庫取更方便。因為緩存往往使用的是RAM(斷電即掉的非永久儲存),所以在忙完後還是會把文件送到硬碟等存儲器里永久存儲。電腦里最大的緩存就是內存條了,最快的是CPU上鑲的L1和L2緩存,顯卡的顯存是給GPU用的緩存,硬碟上也有16M或者32M的緩存。千萬不能把緩存理解成一個東西,它是一種處理方式的統稱!
在WEB開發中用來應付高流量最有效的辦法就是用緩存技術,能有效的提高伺服器負載性能,用空間換取時間。
互聯網也是2 8定論,就像網路搜索中的關鍵字一樣,80%的人所搜索的肯定就是 20%的內容,所以只需要把這 20%的關鍵字的內容綬存好就可以很有效的在數十億的記錄中快速的返回給用戶需要的內容。
這編文章我們來看一下在PHP WEB開發中常用的一些綬存手段。
1、普遍緩存技術:
數據緩存:這里所說的數據緩存是指資料庫查詢PHP緩存機制,每次訪問頁面的時候,都會先檢測相應的緩存數據是否存在,如果不存在,就連接資料庫,得到數據,並把查詢結果序列化後保存到文件中,以後同樣的查詢結果就直接從緩存表或文件中獲得。
用的最廣的例子看Discuz的搜索功能,把結果ID緩存到一個表中,下次搜索相同關鍵字時先搜索緩存表。
舉個常用的方法,多表關聯的時候,把附表中的內容生成數組保存到主表的一個欄位中,需要的時候數組分解一下,這樣的好處是只讀一個表,壞處就是兩個數據同步會多不少步驟,資料庫永遠是瓶頸,用硬碟換速度,是這個的關鍵點。
2、 頁面緩存:
每次訪問頁面的時候,都會先檢測相應的緩存頁面文件是否存在,如果不存在,就連接資料庫,得到數據,顯示頁面並同時生成緩存頁面文件,這樣下次訪問的時候頁面文件就發揮作用了。(模板引擎和網上常見的一些PHP緩存機制類通常有此功能)
3、 時間觸發緩存:
檢查文件是否存在並且時間戳小於設置的過期時間,如果文件修改的時間戳比當前時間戳減去過期時間戳大,那麼就用緩存,否則更新緩存。
4、 內容觸發緩存:
當插入數據或更新數據時,強制更新PHP緩存機制。
5、 靜態緩存:
這里所說的靜態緩存是指靜態化,直接生成HTML或XML等文本文件,有更新的時候重生成一次,適合於不太變化的頁面,這就不說了。
以上內容是代碼級的解決方案,我直接CP別的框架,也懶得改,內容都差不多,很容易就做到,而且會幾種方式一起用,但下面的內容是伺服器端的緩存方案,非代碼級的,要有多方的合作才能做到
㈤ PHP限制某城市訪問
代碼如下,絕對符合你的要求
<?php
//程序不難,難在ip數據獲取和解析。這個$ipInforProviderUrl是有道未公開的ip查詢api,
//返回信息中只有ip地址和地理位置。這個Provider隨時可能失效,請樓主自行尋找
//在適當的腳本中加入以下代碼即可實現樓主的設想
//例如config.php,common.php等被幾乎所有腳本include過的公共腳本
$ipInforProviderUrl="http://www.you.com/smartresult-xml/search.s?&type=ip&q=";
$ip=$_SERVER["REMOTE_ADDR"];
$ipInfor=file_get_contents($ipInforProviderUrl.$ip);
echo $ipInfor;
if(strpos($ipInfor,"深圳"))
echo '禁止訪問';
?>
㈥ PHPCMS如何禁止IP訪問網站
禁止IP其實沒什麼用。如果用戶是撥號上網。每次重啟一下貓和路由。IP就變了。當然這種在一定程度上是可以起作用的。最好是IP和賬號一起設置成禁止。IP禁止訪問的方法。獲取用戶請求包頭部。頭部會包含對方的IP。獲取它並判斷。具體怎麼獲取頭部里信息。網路一下。很多。
㈦ PHP代碼如何放行代理伺服器IP
<?php
//授權IP
$ips=['119.29.29.29','8.8.8.8'];
//代理IP直接退出
empty($_SERVER['HTTP_VIA'])orexit('AccessDenied');
//防止快速刷新
session_start();
$seconds='3';//時間段[秒]
$refresh='5';//刷新次數
//設置監控變數
$cur_time=time();
if(isset($_SESSION['last_time'])){
$_SESSION['refresh_times']+=1;
}else{
$_SESSION['refresh_times']=1;
$_SESSION['last_time']=$cur_time;
}
//處理監控結果
if($cur_time-$_SESSION['last_time']<$seconds){
if($_SESSION['refresh_times']>=$refresh&&!in_array($getIP,$ips)){
//跳轉至攻擊者伺服器地址
header(sprintf('Location:%s','
));
exit('AccessDenied');
}
}else{
$_SESSION['refresh_times']=0;
$_SESSION['last_time']=$cur_time;
}
functiongetIP(){
if(getenv('HTTP_CLIENT_IP')){
$ip=getenv('HTTP_CLIENT_IP');
}elseif(getenv('HTTP_X_FORWARDED_FOR')){
$ip=getenv('HTTP_X_FORWARDED_FOR');
}elseif(getenv('HTTP_X_FORWARDED')){
$ip=getenv('HTTP_X_FORWARDED');
}elseif(getenv('HTTP_FORWARDED_FOR')){
$ip=getenv('HTTP_FORWARDED_FOR');
}elseif(getenv('HTTP_FORWARDED')){
$ip=getenv('HTTP_FORWARDED');
}else{
$ip=$_SERVER['REMOTE_ADDR'];
}
return$ip;
}
㈧ discuz 怎麼禁止代理訪問
打開./include/common.inc.php
找到
if($attackevasive) {
require_once DISCUZ_ROOT.'./include/security.inc.php';
}
在下面加上
if($_SERVER['HTTP_PROXY_CONNECTION'] || $_SERVER['HTTP_VIA'] || $_SERVER['HTTP_USER_AGENT_VIA'] || $_SERVER['HTTP_X_FORWARDED_FOR'] || $_SERVER['HTTP_PROXY_CONNECTION'] || $_SERVER['HTTP_CACHE_CONTROL'] || $_SERVER['HTTP_CACHE_INFO']) {
showmessage("請勿使用代理伺服器訪問論壇, 謝謝");
}
㈨ 求一段禁止代理IP訪問網頁的PHP代碼!
首先你得收集所有代理提供商所使用的IP
然後開始編寫虛假頁面
或者你可以慢慢來,收集到一個就添加一個到「黑名單」
不可能的任務,能做到的話,只能說他很牛叉!
㈩ 求一段php代碼,禁止用戶直接輸入網址訪問,但是通過搜索引擎搜索可以正常訪問!
<?php
if ((!isset($_SERVER['HTTP_REFERER']) || !$_SERVER['HTTP_REFERER']) && (stripos($_SERVER['HTTP_USER_AGENT'], 'bot') === false && stripos($_SERVER['HTTP_USER_AGENT'], 'spider') === false)) {
exit('沒有referer,user-agent中不含有bot或spider');
}