擴展:php
curl命令用法:nginx
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 顯示詳細的通訊過程
1、限制IP訪問:vim
1)白名單瀏覽器
vim /etc/nginx/conf.d/discuz.tobe.com.conf服務器
allow 127.0.0.1; allow 192.168.2.0/24; 容許此網段的ip訪問,即白名單 deny all;
除了白名單中的ip外,進行訪問會返回403curl
2)黑名單ide
deny 127.0.0.1; deny 1.1.1.1;
訪問黑名單中的ip地址時,返回403,除外的正常返回url
2、限制某個目錄spa
限制/data目錄:3d
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
由於只容許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;
3、限制某個目錄下的某些類型的文件
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表明沒有這個文件,可是沒有限制
4、限制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
curl -v -A 'aaaaaSpider/3.0' -e 'avd123' -x127.0.0.1:80 discuz.tobe.com -I -A 指定user-agent -v 顯示詳細的通訊過程 -e 指定referer
5、限制uri
$request_uri也是 /etc/nginx/nginx.conf主配置文件中log_format的變量
$request_uri 請求的連接,包括$document_uri和$args
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