我正在查看NGINX SSI模块,我想知道是否有办法阻止SSI上的"文件"选项。
http://nginx.org/en/docs/http/ngx_http_ssi_module.html
这样有人就不会这样做
<!--# include file="/etc/passwd" -->
我无法找到有关包含文件的安全性,有人对此有所了解吗?
首先,您可以完全确定这种情况不会发生的唯一方法是以非root用户身份运行nginx(还有许多其他原因这样做,我相信您已经这样做了)。
要考虑的另一件事是,SSI 通常应被视为特权代码,就像 CGI 脚本一样。 通常不应允许不受信任的用户使用它们。
也就是说,您的问题的答案是nginx通过以相同的方式处理file
和uri
选项并将其传递给ngx_http_subrequest
来处理(源代码)SSI include
指令。 这本质上与为给定文件提供文件请求相同,特别是名称是相对于当前有效的 root
指令解析的。 因此,仍然存在一些安全考虑,但总的来说,它比SSI解析器简单地打开并读取文件要安全得多。