一般我们使用nginx常用的就那么几项,简单代理、反向代理、代理转发、负载均衡、重定向,等等。但是有时候又不得不进行另外的一些配置,下面介绍几种”防盗”配置。
爬虫 User-Agent 过滤:
location / {
if ($http_user_agent ~* "python|curl|java|wget|httpclient|okhttp") {
return 503;
}
# 正常处理
# ...
}
屏蔽文件目录:
#通用备份和归档文件
location ~* "\.(old|orig|original|php#|php~|php_bak|save|swo|aspx?|tpl|sh|bash|bak?|cfg|cgi|dll|exe|git|hg|ini|jsp|log|mdb|out|sql|svn|swp|tar|rdf)$" {
deny all;
}
#拒绝访问 .git 和 .svn 目录
location ~ (.git|.svn) {
deny all;
}
#拒绝访问隐藏文件和目录
location ~ /\.(?!well-known\/) {
deny all;
}
图片防盗链:
location ~* \.(gif|jpg|png|swf|flv)$ {
root html;
valid_referers none blocked *.nginx.com;
if ($invalid_referer) {
rewrite ^/ www.nginx.cn;
# return 404;
}
}
防盗图配置:
location ~ \/public\/(css|js|img)\/.*\.(js|css|gif|jpg|jpeg|png|bmp|swf) {
valid_referers none blocked *.jslite.io;
if ($invalid_referer) {
rewrite ^/ http://wangchujiang.com/piratesp.png;
}
}
阻止常见攻击:
#base64编码的网址
location ~* "(base64_encode)(.*)(\()" {
deny all;
}
#javascript eval() url
location ~* "(eval\()" {
deny all;
}
使网站不可索引:
add_header X-Robots-Tag "noindex";
location = /robots.txt {
return 200 "User-agent: *\nDisallow: /\n";
}
原创文章,作者:A·大饼哥,如若转载,请注明出处:https://b.sanbangyun.com/20240612/183.shtml