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

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

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

所以有人不这样做

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

我在包含文件方面找不到太多关于安全性的信息,有人知道吗?

解答

首先,您可以完全确定不会发生这种情况的唯一方法是以非 root 用户身份运行 nginx(这样做还有很多其他原因,我相信您已经这样做了)。

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

也就是说,您的问题的答案是 nginx 进程(源代码)通过相同地处理fileuri选项并将它们传递给ngx_http_subrequest来处理 SSIinclude指令。这与为给定文件提供文件请求基本相同,特别是名称是相对于当前有效的root指令解析的。所以仍然有一些安全考虑,但总的来说,它比 SSI 解析器简单地打开和读取文件要安全得多。

Logo

开发云社区提供前沿行业资讯和优质的学习知识,同时提供优质稳定、价格优惠的云主机、数据库、网络、云储存等云服务产品

更多推荐