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