【发布时间】:2013-11-20 02:31:25
【问题描述】:
假设我有一个使用 Linux、Apache、PHP 和 MySQL 堆栈开发的网站 www.abcd.com。
我创建了网页 www.abcd.com/redirect.php 来重定向所有未经授权的用户。
如果请求来自 IP 180.11.34.1 的网站 www.abcd.com 或其子目录 [例如:www.abcd.com/temp/images/aaa.js ] 中的任何文件,那么它应该将用户重定向到www.abcd.com/redirect.php
是否可以通过提供 IP 范围进行重定向?例如:从 180.11.34.1 到 180.11.34.123
是否可以将所有请求重定向到我的网络服务器 php/cgi/js/css/image 文件;不是通过我的域访问 www.abcd.com/redirect.php 吗?
【问题讨论】:
-
您可以使用
RewriteCond执行此操作,但我不建议将其作为安全的身份验证形式。 -
你能建议一下,什么是安全的形式?
-
这真的取决于您的需求。网站通常使用用户名和密码进行身份验证,然后使用会话来维护状态。您可以通过应用程序中的 IP 检查或在防火墙级别列入白名单来增强它。或者也许使用 VPN 的解决方案更有意义 - 再次取决于。
-
有没有什么好的文档可以解释如何与用户名和密码一起进行 IP 检查?目前,我正在使用 $_SERVER[REMOTE_ADDR] 使用用户 ID 和密码以及 IP 的日志条目对用户进行身份验证。但我发现使用 $_SERVER[REMOTE_ADDR] 收到的 IP 地址不可靠....有没有其他方法?
-
并非如此。缺点是地址可以被远程主机欺骗。仅从您的角度来看,它是很好的数据,并且可能是身份验证的额外预防措施,但仅此一项就不是防弹的。更安全...使用 HTTPS、两种形式的身份验证或非应用层解决方案。
标签: php apache .htaccess mod-rewrite redirect