因为项目需要,部署之后客户需要实现白名单功能。以前一般使用iis服务器或者是网上的DZ或CP面板,而且也仅仅操作过黑名单。百度搜索,基本都是黑名单的操作方法,本文章主要是讲使用apache来规则实现黑白名单,从程序角度实现的就不在陈述,PHP程序可以直接获取客户端IP在初始化class或者login方法实现禁止或仅允许区段IP通过访问。
方法1:通过apache的虚拟主机配置文件httpd.conf来控制,本方法适用于自己架设的服务器,一般虚拟主机是不能接触到httpd.conf文件的。
#白名单,仅允许192.168.0.1以及192.168.1.1-192.168.1.255访问Options Indexes FollowSymLinks Includes ExecCGI AllowOverride All #以下为关键代码 Order Deny,Allow Allow from 192.168.0.1 Allow from 192.168.1.0/24 Deny from All #黑名单,禁止192.168.0.1以及192.168.1.1-192.168.1.255访问Options Indexes FollowSymLinks Includes ExecCGI AllowOverride All #以下为关键代码 order allow,deny allow from all deny from 192.168.0.1 deny from 192.168.1.
方法2:通过apache的虚拟主机的伪静态文件.htaccess来控制,本方法适用于支持.htaccess的所有主机。
#白名单,仅允许192.168.0.1以及192.168.1.1-192.168.1.255访问 Order Deny,Allow Allow from 192.168.0.1 Allow from 192.168.1.0/24 Deny from All #黑名单,禁止192.168.0.1以及192.168.1.1-192.168.1.255访问 order allow,deny allow from all deny from 192.168.0.1 deny from 192.168.1.
PS:192.168.1.0/24与192.168.1. 等价,仅为不同书写格式。