2014-01-30 88 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