1. 使用.htaccess文件限制IP
在网站根目录创建或编辑.htaccess文件,添加以下规则:

Order deny,allow
Deny from all
Allow from 192.168.1.100
Allow from 203.0.113.25
此配置仅允许指定IP访问,其他IP将被拒绝。支持单个IP或CIDR格式(如192.168.1.0/24)。修改后无需重启服务器立即生效。
2. PHP代码中验证客户端IP
在PHP脚本开头添加IP检查逻辑:
$allowed_ips = ['110.45.183.62', '192.168.0.*'];
$client_ip = $_SERVER['REMOTE_ADDR'];
if(!in_array($client_ip, $allowed_ips) && !in_array_wildcard($client_ip, $allowed_ips)) {
header('HTTP/1.1 403 Forbidden');
exit('Access denied');
function in_array_wildcard($ip, $list) {
foreach($list as $pattern) {
if(strpos($pattern, '*') !== false && preg_match('/^'.str_replace('\*', '.*', preg_quote($pattern, '/')).'$/', $ip)) {
return true;
return false;
此方法支持通配符验证,需在需要保护的每个PHP文件中添加。
3. Nginx服务器配置限制
在Nginx的server配置块中添加规则:
location ~ \.php$ {
allow 172.16.0.0/12;
allow 10.10.5.100;
deny all;
… # 原有PHP处理配置
保存后执行 nginx -s reload 使配置生效。可精确控制特定PHP文件的访问权限。
4. Apache虚拟主机配置
在VirtualHost配置中添加Directory指令:
Order deny,allow
Deny from all
Allow from 2001:db8::/32
此方法适用于目录级限制,修改后需重启Apache:systemctl restart apache2。
5. 使用iptables防火墙过滤
通过Linux防火墙直接限制:
- 允许特定IP访问80端口:
iptables -A INPUT -p tcp –dport 80 -s 58.64.132.78 -j ACCEPT - 拒绝其他所有访问:
iptables -A INPUT -p tcp –dport 80 -j DROP - 保存规则:
iptables-save > /etc/iptables/rules.v4
此方法在系统层生效,影响所有Web服务。
6. 集成Web应用防火墙(WAF)
使用ModSecurity等WAF实现:
| 步骤 | 操作 |
|---|---|
| 1 | 安装ModSecurity模块 |
| 2 | 配置规则文件: SecRule REMOTE_ADDR “!@ipMatch 192.168.1.1-100” “id:1001,deny” |
| 3 | 重启Web服务器 |
支持复杂IP范围匹配,并提供攻击日志记录功能。
7. 云平台安全组配置
在云服务器(如AWS/Aliyun)控制台操作:
- 创建安全组规则
- 授权对象选择”指定IP地址”
- 输入允许的IP或CIDR块
- 应用规则到目标服务器
此方法在网络层拦截,降低服务器资源消耗。
8. 综合实施方案建议
推荐分层防护策略:
- 在云防火墙/安全组设置基础IP白名单
- Nginx/Apache配置二次过滤
- 关键业务接口添加PHP代码验证
- 使用WAF记录异常访问
定期审查访问日志并使用whois分析异常IP,动态更新规则库。
内容均以整理官方公开资料,价格可能随活动调整,请以购买页面显示为准,如涉侵权,请联系客服处理。
本文由星速云发布。发布者:星速云。禁止采集与转载行为,违者必究。出处:https://www.67wa.com/67588.html