将 Nginx 设置为代理,为任何响应添加特定的标头

将 Nginx 设置为代理,为任何响应添加特定的标头

我正在整合一些 Docker 容器,以便我的团队能够通过使用特定代理服务器启动 Google Chrome 实例来发现其应用程序中的 XSS 漏洞。例如,

/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --user-data-dir=/tmp --proxy-server=http://localhost:8080

然后他们可以导航到任何 URL,进行一些测试并检查结果。

端口 8080 上有一个 Nginx 服务器,我使用它作为代理来添加特定的标头任何回应:

Content-Security-Policy-Report-Only: require-trusted-types-for 'script'; report-uri //localhost:9090

此标头的作用是报告localhost:9090运行 CSP 报告收集服务的任何 CSP 违规行为。

Nginx 唯一要做的就是:

  1. 让任何请求通过
  2. 拦截任何响应并添加标头
  3. 让响应通过

这是我当前的 Nginx 配置:

正如您在下面看到的,我还没有尝试添加标题(没关系,我稍后会处理),但是我真的在努力解决第 3 点。我可以看到请求通过 Nginx,但似乎没有任何结果。

events {
  worker_connections  1024;
}

http {
  server {
    listen 80;
    location / {
      proxy_pass $host;
    }
  }
}

我该如何配置 Nginx 来实现这一点?如果更简单的话,我也愿意接受 Nginx 的替代方案。


例如当我导航到 bbc.co.uk 时

我可以在 Nginx 日志中看到这一点:

proxy_1          | 172.18.0.1 - - [08/Sep/2020:15:04:01 +0000] "CONNECT www.google.com:443 HTTP/1.1" 400 173 "-" "-"
proxy_1          | 172.18.0.1 - - [08/Sep/2020:15:04:01 +0000] "CONNECT www.google.com:443 HTTP/1.1" 400 173 "-" "-"
proxy_1          | 172.18.0.1 - - [08/Sep/2020:15:04:01 +0000] "CONNECT bbc.co.uk:443 HTTP/1.1" 400 173 "-" "-"
proxy_1          | 172.18.0.1 - - [08/Sep/2020:15:04:01 +0000] "CONNECT bbc.co.uk:443 HTTP/1.1" 400 173 "-" "-"
proxy_1          | 172.18.0.1 - - [08/Sep/2020:15:04:02 +0000] "CONNECT bbc.co.uk:443 HTTP/1.1" 400 173 "-" "-"
proxy_1          | 172.18.0.1 - - [08/Sep/2020:15:04:02 +0000] "CONNECT bbc.co.uk:443 HTTP/1.1" 400 173 "-" "-"

Chrome 提示无法访问该网站。

相关内容