1
<?php if($_SERVER['REMOTE_ADDR'] != 'xx.xx.xx.xx') { 
header("Location: http://google.com");
} ?> 

这是阻止某些 IP 地址访问我的 Windows 服务器上的某些文件夹的好方法吗?

或者它可以被webscarab之类的代理软件拦截,并且可以修改原始IP地址来绕过这个?

4

2 回答 2

3

它可以被任何具有与您阻止的 IP 地址不同的 IP 地址的代理绕过。您可以检查X-Forwarded-For(如果您使用的是 Apache,请使用 Apache 进行挖掘apache_request_headers() ,但如果您将其优先于$_SERVER['REMOTE_ADDR'].

另外,我可以忽略你的Location标题。exit在它之后也放一个。

于 2011-05-30T05:34:57.467 回答
0

如果您只想通过 IP 阻止,您可以使用 .htaccess - 为一组目录设置规则而不是创建大量 php 文件更容易。但这不是过滤用户的好方法。创建一个简单的注册表单,或使用来自 twitter、facebook 或其他网站的 API。

于 2011-05-30T06:46:19.870 回答