正如标题所说;我真正想从 nginx 变量中获取的是所请求文件的目录。
原因是我正在处理用户上传的静态内容,该内容由用户组织到子目录中,并且我想限制 HTML 和 Javascript 等内容可以从上传位置执行的操作,而不必完全禁止它们。
例如,我可能会做类似的事情:
set_header Content-Security-Policy "default-src $file_directory";
假设我有正确的目录值,这可能意味着如果用户上传了 HTML 文件和一些资源,那么现代浏览器将只允许 HTML 文件引用放置在同一目录中的资源(不链接到其他用户的目录或外部站点)。
理想情况下,我希望获得比当前文件目录更多的粒度。例如,如果请求的文件是,/username/upload1/index.html
那么我可能会将资源引用限制为mydomain.com/username/upload1
,但允许 cookie mydomain.com/username
(即 cookie 可以在同一用户的上传之间共享)。
对于注重安全性的人来说,所有用户上传的内容都放在自己的子域下,并将所有内容视为静态。我最初考虑的是每个用户子域,但我的反向代理和证书颁发机构不支持它(所以我会失去缓存和 SSL,而这两者都我不想失去!)