nginx SSI模块;禁用文件包括?

时间:2014-12-05 18:22:11

标签: nginx ssi esi

我正在查看NGINX SSI模块,我想知道是否有办法阻止"文件"关于SSI的选项。

http://nginx.org/en/docs/http/ngx_http_ssi_module.html

所以有人不这样做

 <!--# include file="/etc/passwd" -->

我无法找到有关包含文件的安全性,有没有人对此有所了解?

1 个答案:

答案 0 :(得分:2)

首先,你可以完全确定这不会发生的唯一方法是将nginx作为非root用户运行(还有很多其他原因可以这样做,而且我确定你这样做了。)

要考虑的另一件事是SSI通常应被视为特权代码,就像CGI脚本一样。您通常不应允许来自不受信任的用户。

那就是说,你的问题的答案是nginx处理(source code)SSI include指令,同样处理fileuri选项并将它们传递给ngx_http_subrequest。这与为给定文件提供文件请求基本相同,特别是相对于当前有效的root指令解析名称。所以仍然有一些security considerations,但一般来说它比SSI解析器更简单地打开并读取它自己的文件。