php判断referer来源域进行白名单黑名单访问控制,LNMP---访问控制

访问控制

扩展:

curl命令用法:

curl -v -A 'aaaaaspider/3.0' -e "1111" -x127.0.0.1:80 discuz.tobe.com -I

-A 指定user-agent

-e 指定referer

-x 指定访问目标服务器的ip和port

-I 只显示 header信息,不显示具体的网页内容

-v 显示详细的通信过程

一、限制IP访问:

1)白名单

vim /etc/nginx/conf.d/discuz.tobe.com.conf

allow 127.0.0.1;

allow 192.168.2.0/24; 允许此网段的ip访问,即白名单

deny all;

044c00e51df6b449408dc0628749dcbb.png

除了白名单中的ip外,进行访问会返回403

34822faf6b2155bf75bc3cd1a256f0e6.png

2)黑名单

deny 127.0.0.1;

deny 1.1.1.1;

访问黑名单中的ip地址时,返回403,除外的正常返回

2c43475da94198d1d23fd42489fd77f6.png

二、限制某个目录

限制/data目录:

location /data/

{

allow 127.0.0.1;

allow 192.168.1.0/24;

deny all;

}

curl -x127.0.0.1:80 discuz.tobe.com/data/ -I

1443b890683b141aee70c815ef1b13ea.png

因为只允许127.0.0.1和192.168.1网段的ip访问,所以使用246网段访问时返回403

curl -x192.168.246.128:80 discuz.tobe.com/admin.php -I

allow 127.0.0.1;

allow 192.168.1.0/24;

deny all;

426c957119a65e98f3706de5dbb019c5.png

62d2e6d33293a6785221c002e13da14b.png

三、限制某个目录下的某些类型的文件

location ~ .*(upload|image)/.*\.php$ #限制访问upload或image中的php文件

{

deny all;

}

curl -x127.0.0.1:80 discuz.tobe.com/upload/add.php -I

返回403代表有限制了,无法访问

访问ssw下的php文件返回404代表没有这个文件,但是没有限制

0b6b9b7ed9959d42e3c1fef2aa5b6fe9.png

四、限制user-agent(浏览器中的标识)

编辑虚拟主机配置文件:

vim /etc/nginx/conf.d/discuz.tobe.com.conf

if ($http_user_agent ~ 'Spider/3.0|YoudaoBot|Tomato')

{

return 403;

}

$http_user_agent是 /etc/nginx/nginx.conf主配置文件中log_format的变量

curl -A 'aaaaaSpider/3.0' -x127.0.0.1:80 discuz.tobe.com -I 配置文件中没有区分大小写,命令中包含了Spider/3.0,所以返回了403

7b61e2503e0fdacc16150a05e2180d80.png

curl -v -A 'aaaaaSpider/3.0' -e 'avd123' -x127.0.0.1:80 discuz.tobe.com -I

-A 指定user-agent

-v 显示详细的通信过程

-e 指定referer

e840b6285c6196edc34b88587911baca.png

五、限制uri

$request_uri也是 /etc/nginx/nginx.conf主配置文件中log_format的变量

$request_uri  请求的链接,包括$document_uri和$args

1294a2b553a3c21f1c75bb9aabbc1afb.png

672281e81627f1a2a1be53fd003d4a35.png

44237c0784b0b69300c0bfac573d466e.png

http://discuz.tobe.com/forum.php?mod=viewthread&tid=1&extra=

forum.php就是$document_uri

?后面的是参数

编辑虚拟主机配置文件

vim /etc/nginx/conf.d/discuz.tobe.com.conf

if ($request_uri ~ (abc|123|viewthread)) #包含了viewthread,会返回404

{

return 404; #此处可以改成403,根据需求更改

}

http://discuz.tobe.com/forum.php?mod=viewthread&tid=1&extra=     $args中包含viewthread,所以在判断时返回了404

e2ee320469f960a8ab0eee8b85096914.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值