为 php 安全配置 nginx

为 php 安全配置 nginx

我想要将 nginx 用于 Symfony2 站点以及其他软件(例如 phpMyAdmin)。

我已阅读有关设置 Symfony2 的 nginx 文档并遇到了这个问题:http://www.webhostingtalk.com/showthread.php?p=6807475#post6807475

我可以直接使用security.limit_extensions=php然后安全地使用这样的东西吗?

location \.php$ {
  ...
}

该博客似乎表明这是解决文件上传安全问题的一种方法:http://kaiwangchen.com/blog/2012/10/understand-the-cgi-fix_pathinfo-security-issue/

但是大多数提供 nginx 设置教程的地方都推荐旧解决方案,即仅将 php 限制到特定文件。所以我不确定这是否真的可以避免任意代码注入。

或者我应该使用try_files

答案1

try_files使用和的组合security.limit_extensions=php,确保您创建的上传文件夹绝对没有机会执行任何代码。最后一件事是最重要的,也是唯一能让您永远避免这个问题的事情。

例子:

/var/www/src      ->  execute PHP files
/var/www/uploads  ->  only accessible for static delivery

相关内容