gpt4 book ai didi

google-chrome - 表单操作 CSP 阻止允许的 URL

转载 作者:行者123 更新时间:2023-12-05 01:27:17 26 4
gpt4 key购买 nike

登录表单被 CSP 阻止,我不明白为什么

Chrome 版本 94.0.4606.61

错误信息:

Refused to send form data to'https://subdomain.mydomain.com/login/local' because itviolates the following Content Security Policy directive: "form-action'self' https: *.mydomain.com".

火狐没问题

最佳答案

这是因为在登录期间,您通过 form-action 指令中不允许的主机源执行重定向(端口、方案、域名/子域名不匹配)。
重定向时,CSP 检查整个源链,但浏览器在 form-action for redirects 的行为上存在差异。 :

  • Chrome/Safari 将提交表单时的重定向视为潜在危险,因为敏感的用户数据可能会重定向到攻击者的域。因此,如果 form-actions 中不允许的主机源(域)参与重定向链,它们将阻止重定向。

  • Firefox 认为服务器重定向受 CSP 保护的页面所有者的控制。因此,在重定向期间,它允许您在重定向期间将表单发送到第三方域。

注意 1. 'self' 表示与地址栏中的 Url 完全相同的 scheme://domain:port。因此 CSP:

 form-action 'self' https: *.mydomain.com
  • 如果 Url 是 HTTPS://subdomain.mydomain.com 上面的 CSP 变成了 form-action HTTPS://subdomain.mydomain.com https: HTTPS://*.mydomain.com whis 等于 form-action https: - 它允许除 http:-Urls 之外的任何内容。

  • 如果 Url 是 HTTP://subdomain.mydomain.com,上面的 CSP 就变成了 form-action HTTP://subdomain.mydomain.com https: HTTP ://*.mydomain.com 并且它不允许主域 mydomain.com

注意2.消息中的Url https://subdomain.mydomain.com/login/local:

Refused to send form data to 'https://subdomain.mydomain.com/login/local' because it violates ...`

网址真的被 Chrome 阻止了。这只是重定向链中的第一个 Url。

注意 3. 如果 CSP 毕竟阻止了允许的域,它很可能是 interference of browser extensions如NoScript/uBlock/AdBlock/PrivacyBadger等干扰。

关于google-chrome - 表单操作 CSP 阻止允许的 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69433198/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com