我正在整合一些 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 唯一要做的就是:
- 让任何请求通过
- 拦截任何响应并添加标头
- 让响应通过
这是我当前的 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 提示无法访问该网站。