首先,我不确定这是否是提出问题的正确地方。但它与 certbot 在我的服务器上完成的 ngnix 配置有关。它在配置中添加了以下行用于域
位置 ~ "^/.well-known/acme-challenge/(.*)$" {
默认类型文本/纯文本;
返回 200 “$1.JNpbG5iba8ymsxdlOr_9u1lAMl4jlh8gr-rAXwFysMM”; }
这会导致 Url 激活并通过内联插入到 HTML,即如果用户调用,http://domain/.well-known/acme-challenge/<h1>tag</h1>
则会出现带有该 h1 标签的 HTML 页面,这在我们的安全扫描中记录为高安全风险。
我不知道如何修复,以及这是否真的是一个安全问题?因为它与我的代码文件无关,并且它无法直接访问我们的文件或数据库。但它肯定可以用于伪造和相关黑客攻击。
请指导我。
答案1
在 Nginx 正则表达式位置中,括号 (.) 之间的匹配模式被分配了从 $1 到 $9 的变量,稍后可以在位置块中使用。在这种情况下,Nginx 将与 (.*)$ 匹配的 URL 部分存储在 $1 中。在响应主体中,它只是用匹配的部分替换 $1(出现在返回语句中)。
只要涉及安全风险,由于默认类型是 text/plain,它不应该被解释为 html。如果您遵循了 Certbot 的官方指南,则无需惊慌。还有其他配置 Certbot 的方法也可以让安全扫描器满意,例如只需将文本文件放在 acme-challenge 目录中。