|
|
本帖最后由 IMFINETHXANDU 于 2019-7-7 23:20 编辑
qbittorrent的webUI,想反代通过域名进行访问,设置里勾选"启用跨站点请求伪造(CSRF)保护"后不能正常显示,取消勾选就正常。
有大佬知道怎么回事儿吗?
(解决方案详见最后)
原反代设置如下(caddy):
- https://sub.domain.tld {
- tls [email protected]
- timeouts none
- gzip
- proxy / localhost:12345 {
- # header_upstream -Origin
- }
- }
复制代码
设置界面相关区域有以下几个可勾选和设置的选项:
验证
□ 启用“点击劫持”保护
□ 启用跨站点请求伪造(CSRF)保护
□ 启用主机标头验证
服务器域名:____________
默认设置勾选的前两个启用保护,试着取消勾选CSRF保护后通过域名打开正常,但是不知道有没有什么弊端,另外还是想知道启用后有没有可行的反代方法。
=========================================================================
解决过程:
通过查找qbittorrent的wiki(https://github.com/qbittorrent/qBittorrent/wiki/NGINX-Reverse-Proxy-for-Web-UI)
发现在nginx中,大概需要这样:
- location /qbt/ {
- proxy_pass http://127.0.0.1:8080/;
- proxy_set_header X-Forwarded-Host $server_name:$server_port;
- proxy_hide_header Referer;
- proxy_hide_header Origin;
- proxy_set_header Referer '';
- proxy_set_header Origin '';
- add_header X-Frame-Options "SAMEORIGIN"; # see note
- }
复制代码
在caddy中要实现相似效果,通过查看http.proxy的说明(https://caddyserver.com/docs/proxy),发现了如下信息:
transparent
Passes thru host information from the original request as most backend apps would expect. Shorthand for:
header_upstream Host {host}
header_upstream X-Real-IP {remote}
header_upstream X-Forwarded-For {remote}
header_upstream X-Forwarded-Port {server_port}
header_upstream X-Forwarded-Proto {scheme}
试着将反代配置如下设置,成功了:
https://sub.domain.tld {
tls [email protected]
timeouts none
gzip
proxy / localhost:12345 {
transparent
}
}
此时勾选前两个保护,一切正常。试着开启主机标头验证,"服务器域名"填写sub.domain.tld,仍然正常。 |
|