zoukankan      html  css  js  c++  java
  • nginx + fastcgi  php配置下,安全的文件上存路径设置

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

    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/;
    }

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

  • 相关阅读:
    Linux下定时删除指定目下n天前的文件
    日期时间格式化
    sed与awk
    Linux守护进程(init.d和xinetd)
    python-Json模块
    python3 urllib模块
    linux 命令 rsync
    Linux下scp的用法
    代码块重定向
    使用exec
  • 原文地址:https://www.cnblogs.com/chengmo/p/1765480.html
Copyright © 2011-2022 走看看