沉于思考,默默学习!

你不能预知明天,但你可以利用今天。你不能样样顺利,但你可以事事尽力!

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

这个设置,也是来自最近的

80后安全团队曝nginx漏洞:波及百万台服务器_科技_腾讯网

使我联想到,如果设置不当,也会带来不必要的麻烦。本文主要就,怎么样保证用户上存了文件,能够将上存文件独立起来,不能运行,而且限制从服务端限制上传文件的访问。

 

1。目录结构设置,最好将能够上存文件,写文件的目录独立开来,不与站台程序文件,同一个目录。

如:php 程序是;/home/www/html/www.a.com/cgi/.....

而静态文件可以是:/home/www/html/www.a.com/upload/  如果有条件,最好是:/static/upload/www.a.com/ 独立新的分区。

 

将php程序区权限配制为:不能进行写操作(读,执行), 然后:独立分区,允许读写。

 

 

2.看下一般例子:

 

location ~* \.php$ {
#以下自己配置了:upstrem 根据实际写入
proxy_pass http://myweb;
}

location ^~ /upload/ {
alias /static/upload/www.a.com/;
}

 

关于安全的location 配制,可以参考“nginx location 配置阐述优先级别使用说明-不当可能存在安全隐患

这样一来是限制/upload/ 无论什么扩展名,都会映射到:alias 文件, 但是这个时候,假设出现上存漏洞情况,不安全的文件,就会以源码显示。 因此我们限制,改目录下面只能在允许范围的文件可以访问。

 

location ~* \.php$ {
#以下自己配置了:upstrem 根据实际写入
proxy_pass http://myweb;
}

location ^~ /upload/ {

  if ($request_filename !~* \.(jpg|jpeg|gif|png|swf|zip|rar)$) {
     return 403;

  }

alias /static/upload/www.a.com/;
}

 

通过限制,访问文件类型,达到上存了,非法文件,一样可以阻止访问。 以上是实际工作中,处理方法,有好的方法的朋友,希望可以给我建议。

 

 

 

posted on 2010-06-25 20:27  程默  阅读(1572)  评论(0编辑  收藏  举报