加入收藏 | 设为首页 | 会员中心 | 我要投稿 莱芜站长网 (https://www.0634zz.com/)- 云连接、建站、智能边缘云、设备管理、大数据!
当前位置: 首页 > 运营中心 > Nginx > 正文

Nginx:拒绝在目录及其所有子目录中运行的脚本

发布时间:2020-09-18 10:44:37 所属栏目:Nginx 来源:互联网
导读:假设我的网站允许用户创建目录以及上传到名为“/ uploads”的目录,如下所示:/上传/ user_created_folder_1/上传/ user_created_folder_2/上传/ user_created_folder_3... 等等等等如何防止在“/ uploads”及其所有子目录中执行任何潜在的恶意脚本?服务器块

假设我的网站允许用户创建目录以及上传到名为“/ uploads”的目录,如下所示:

/上传/ user_created_folder_1

/上传/ user_created_folder_2

/上传/ user_created_folder_3

… 等等等等

如何防止在“/ uploads”及其所有子目录中执行任何潜在的恶意脚本?

服务器块中的以下代码是否正确?

location /uploads/.*.(php|pl|py|jsp|asp|sh|cgi)${
                return 403;
                error_page 403 403.html;
        }

非常感谢! 最佳答案 首先,nginx不执行脚本.在某些情况下,它可以将请求代理到执行脚本的其他服务器.最常见的情况是请求中文件的扩展,典型的nginx配置块如下所示:

location ~* .php${
  fastcgi_pass backend;
  ...
}

所以你的问题应该是:如何防止代理请求文件夹/上传/?通过这种典型的配置答案就像:

location ^~ /uploads/ {
}

这意味着:如果请求文件夹上传,只是将它们作为静态文件提供,不要试图为它们寻找正则表达式位置(这需要您了解不同类型的nginx locations).

如果您的配置与典型配置有很大不同,我们需要看到它以给您正确的答案.

(编辑:莱芜站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读