我希望nginx拒绝在/ webroot / uploads中有文件夹的用户
e.g。
/webroot/uploads/user1
/webroot/uploads/user2
/webroot/uploads/user999
执行任何shell脚本或二进制文件(php,pl,py)。
恶意代码通常隐藏在jpg或gif文件中。像badfile.php.jpg
我还看到上传到该文件夹的恶意二进制文件。
这是我的初步规则:
location ~ /webroot/uploads/(.+)\.php$ {
deny all;
}
location ~ /webroot/uploads/(.+)\.pl$ {
deny all;
}
但我不确定它是否足够强大。所以我感谢你的帮助。
答案 0 :(得分:1)
nginx完全没有CGI支持 - 默认情况下,人们无法上传随机脚本或可执行文件然后运行它们。
如果您有一个执行文件的FastCGI桥接器,请检查其配置以及是否可以拒绝webroot / uploads目录。
您也可以强制上传的文件没有设置执行位(但取决于运行文件的人,见下文)可能没有帮助。有关详细信息,请使用upload_store_access user:rw
之类的内容(有关详细信息,请参阅HttpUploadModule documentation。)
最后一点是错误配置导致的漏洞,有人可能会通过PHP处理程序执行随机文件(不以.php
结尾)。请关注this article以获取详细信息并进行正确配置。