根据这篇文章,据说如果我使用 PHP/Nginx,为了更好的安全性,我应该要么
cgi.fix_pathinfo = 0
Run Code Online (Sandbox Code Playgroud)
或者
if ( $fastcgi_script_name ~ \..*\/.*php ) {
return 403;
}
Run Code Online (Sandbox Code Playgroud)
在其他教程中它推荐的风格
fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
Run Code Online (Sandbox Code Playgroud)
他们彼此矛盾吗?有什么安全建议吗?
谢谢。
您指的是一个问题,攻击者可以将任意代码上传到 nginx Web 服务器,然后欺骗服务器将其作为 PHP 执行。(此问题不存在 CVE,因为它在技术上是错误配置而不是漏洞。)
您列出的任何方法都可以用来修复该问题。
修复此问题的另一种更简单的方法是将以下内容添加到 PHP 中location:
try_files $uri =404;
Run Code Online (Sandbox Code Playgroud)
尽管这仅在 nginx 和 PHP 在同一服务器上运行时才有效,这几乎总是正确的。
当然,建议您清楚地记录您正在做什么以及为什么这样做。
| 归档时间: |
|
| 查看次数: |
5561 次 |
| 最近记录: |