我想要将 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