【问题标题】:Blacklisting IP Address将 IP 地址列入黑名单
【发布时间】:2011-05-30 14:46:19
【问题描述】:
<?php if($_SERVER['REMOTE_ADDR'] != 'xx.xx.xx.xx') { 
header("Location: http://google.com");
} ?> 

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

或者可以用webscarab等代理软件拦截,修改源IP地址绕过?

【问题讨论】:

  • 友情提示:不要忘记点击答案旁边的复选框来接受一个好的答案。您也可以返回并针对您的旧问题执行此操作,这将有助于其他人更快地找到解决方案。

标签: php ip blacklist


【解决方案1】:

它可以被任何具有与您阻止的 IP 地址不同的代理绕过。你可以检查X-Forwarded-For(用apache_request_headers()挖掘它如果你使用的是Apache),但是如果你把它优先于$_SERVER['REMOTE_ADDR'],这更容易被欺骗。

另外,我可以忽略您的 Location 标头。在其后加上exit

【讨论】:

  • 感谢您的快速回复亚历克斯。但是你会建议作为我可以在 IIS 7.5 上使用的软件或替代 htaccess 吗?
  • @PHPBeginner 对不起,我忘了你在使用 IIS。用 PHP 做这件事很好,只要你做对了。另外,您是否试图停止访问执行目录列表的服务器?我确信可以通过 IIS 配置禁用它。
  • 我正在向一些我信任的人授予登录权限。所以我使用这个脚本将他们的 IP 地址列入白名单。
  • 这实际上确实在我看来像一个白名单。
  • 那么,我用它可以吗?或者它背后存在安全漏洞。如果我跑题了,我很抱歉。亚历克斯,例如,如果我安装了 Apache,为什么会有所不同。这是一个 apache 漏洞利用吗?对不起,我还是个初学者。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-06
    • 1970-01-01
    • 2021-01-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多