Nginx 如何禁止某些特定的访问

Nginx  

某些网站系统需要用户上传图片等文件到某些目录下,难免程序有些漏洞,导致用户上传了PHP、cgi等等可执行的文件,导致网站陷入非常为难的境地. 此时我们可以通过nginx来禁止用户访问这些目录下的可执行文件。

nginx配置:

location ~ ^/(uploads|images)/.*\.(php|php5|jsp)$ {
    deny all;
}

tips:在目录uploads、images目录下面的所有php、jsp都不能访问。


也有人会选择这样写:

location ~ ^/(uploads|images)/.*\.(php|php5|jsp)$ {
    return 403;
}
这样也是一样的,如果配置了403页面,会跳转过去。

403页面配置:
error_page 403 https://www.abclogs.com/404.html;


还有一些问题也需要注意,就是我们可能在站点的任一目录下放置了.sql文件,我们可以通过下面的方式禁止浏览器访问。

location ~.*\.sql {
    deny all;
}
这样,任一目录的sql文件都不会被用户访问到了。

nginx禁止访问所有.开头的隐藏文件设置

location ~* /.* {
    deny all;
}
nginx禁止访问目录,
例如:禁止访问path目录
location ^~ /path {
    deny all;
}

可以把path换成实际需要的目录,目录path后是否带有"/",带"/"只禁止访问目录,不带"/"禁止访问目录中的文件。


如果需要Nginx禁止使用IP访问网站,可以定义如下主机,丢弃这些请求:
复制代码
代码如下:

server {
    listen       80;
    server_name  "";
    return       444;
}

时间:2017年03月13日    作者:孟德    分类:Linux   浏览:2822    评论:0

链接地址:https://www.abclogs.com/linux_nginx_deny_connections.html

评论列表

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。