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

标签 nginx ssi esi

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

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

这样就不会有人这样做

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

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

最佳答案

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

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

也就是说,您问题的答案是 nginx 通过处理 fileuri 来处理 ( source code ) SSI include 指令> 选项相同并将它们传递给 ngx_http_subrequest。这本质上与为给定文件提供文件请求相同,特别是名称是相对于当前有效的 root 指令解析的。所以还有一些security considerations ,但总的来说,它比 SSI 解析器自己简单地打开和读取文件要安全得多。

关于nginx SSI 模块;禁用文件包含?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27322300/

相关文章:

php - Symfony2 选择性 ESI 缓存

caching - Symfony2 : Private ESI Fragment

ruby-on-rails - Dokku 域 :add <app> <domain> returns unsupported vhost config found. 禁用 vhost 支持

amazon-web-services - 使用服务器端include或ssi,AWS S3

html - 配置 IIS 7.5 为 '.html' 扩展启用服务器端包含 (SSI)

html - SSI 菜单链接需要颜色更改 : CSS or HTML?

caching - 如何通过IP用Varnish 4.x缓存ESI片段和相应的输出

Django Gunicorn Nginx "connection reset by peer while reading response header"

php - IIS 到 nginx 迁移 : `unexpected " {"` erron on\d{^anum^, ^anum^} 条目到映射文件

nginx 位置索引指令不起作用