某些网站系统需要用户上传图片等文件到某些目录下,难免程序有些漏洞,导致用户上传了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禁止访问目录,
location ^~ /path { deny all; }
可以把path换成实际需要的目录,目录path后是否带有"/",带"/"只禁止访问目录,不带"/"禁止访问目录中的文件。
如果需要Nginx禁止使用IP访问网站,可以定义如下主机,丢弃这些请求:
复制代码
代码如下:
server { listen 80; server_name ""; return 444; }