希望对你来说nginx guru很简单。 我找不到任何有关谷歌或文档的相关信息,但我希望这是可能的。
从本质上讲,使用从其他人获得的build议,我们希望阻止PHP在我们的公共上传目录中运行。 我们正在完成这样的事情:
if($uri !~ "^/vb_attach/") { fastcgi_pass 127.0.0.1:9005; }
但在这个网站上,我们有多个上传目录。 我知道nginx不支持&&或|| 在有条件的,所以我们试过这个:
if ($uri !~ "^/vb_attach/") { if($uri !~ "^/vb_album/") { fastcgi_pass 127.0.0.1:9005; } }
但被告知第二个如果不允许那里。 那么我们该如何做到呢? 我们所要做的就是阻止PHP在这些上传目录中执行,以防万一有人能够绕过上传脚本中的检查。
一个最佳实践方式是使用拒绝PHP文件请求的location块。
例如:
server { location /vb_attach { location ~ \.php$ {return 403;} } location /vb_album { location ~ \.php$ {return 403;} } location ~ \.php { ... } }
nginx wiki有几个备选scheme可以防止这种特殊的安全问题,在其他情况下您也可能会遇到这种问题。