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