2014-01-30 125 views
3

訪問我要限制在我的網站某些網頁的訪問。我在PHP中有一些BL頁面,我想限制他們只能訪問內部。的.htaccess拒絕來自外部請求

我的意思是,我想的是,如果用戶在瀏覽器中鍵入他們這些頁面將被拒絕,但會接近,如果另一個PHP頁面會打電話給他們(與POST或GET請求)。

是否有可能做的是,在.htaccess文件? 如果是,怎麼了?

+0

通過「**另一個PHP頁面將稱他們爲**」,你的意思是另一個PHP頁面通過'

+0

因此,您將使用類似cURL庫的方法向本地主機發出HTTP請求?這似乎不是很有效。 – Quentin

回答

0

只是爲了說明,php頁面不是發送POST或GET請求的頁面,而是瀏覽器,這意味着您無法通過IP進行阻止。所以你需要在這裏檢查引用者。這一問題是可以引薦很容易僞造的,所以這是不能保證你會被拒絕訪問。

您可使用的mod_rewrite的%{HTTP_REFERER}變量檢查引薦,然後使用F標誌拒絕訪問:

RewriteEngine On 
# if the request's referer isn't from a php page on your site 
RewriteCond %{HTTP_REFERER} !^https?://your-domain.com/.*\.php 
# deny access to the list of php files 
RewriteRule ^(path/to/protected.php|path/another_protected.php|images/protected.png)$ - [L,F] 
-1

您可以通過用戶代理限制..但它不是更好的辦法...

RewriteCond %{HTTP_USER_AGENT} (Chrome|Firefox|Webkit) 
RewriteRule .* - 

,如果你從那裏來的請求只是添加知道

Order allow deny 
Allow from xx.xx.xxx.xx/xx 
deny from all 

遺憾的英語不好

+2

我知道這是一個古老的答案,但不這樣做!黑客可以欺騙用戶代理!另外值得關注的是,這甚至不適用於像w3m這樣更隱蔽的瀏覽器。 – Jeroen