背景:
web2.0时代,绝大多数网站都是以用户为中心的,如bbs,blog,sns,微信,微博等,这些服务都有一个共同的特点,就是不但允许用户发布内容到服务器,还允许用户上传图片等附件到服务器上。由于为用户开启了上传的功能,因此给服务器带来了很大的安全风险。黑客可能上传木马程序到服务器上,给我们造成危害和损失。
目标:禁止解析可执行文件,已防止木马入侵
策略:利用nginx 的location实现
步骤:
1)环境
cat /etc/redhat-release
CentOS release 6.6 (Final)
uname -m
x86_64
nginx -v
nginx version: nginx/1.9.14
2)以wordpress为例,网站的上传目录是/wp-content/uploads,那么我们在nginx的配置文件中添加下面的指令
location ~ ^/wp-content/uploads/.*\.(php|sh|py)?$ {
deny all;
}
提示:
a.当用户的请求匹配是/wp-content/uploads 目录下的php,shell,python的文件的时候,会拒绝。
b.对于上述目录的限制必须写在nginx处理php服务配置的前面
查看效果
这样,即使用户上传了木马文件,也无法执行,从而加强了网站的安全。
nginx 禁止特定目录下解析可执行文件,以防止木马入侵