不允许表单提交的内容安全策略

Jos*_*osh 8 javascript forms jquery google-chrome content-security-policy

请我在这里需要帮助。我有一个表单要提交到另一个 url,但是当我尝试提交它时,它拒绝提交,我正在检查我的控制台。

在 Chrome 上,我看到以下错误

resources2.aspx?HCCID=75694719&culture=en-US&mlcv=3006&template=5:7 拒绝加载图像“ https://s4.mylivechat.com/livechat2/images/sprite.png ”,因为它违反了以下内容安全策略指令:“img-src'自我'数据:”。

拒绝将表单数据发送到“ https://cipg.stanbicibtcbank.com/MerchantServices/MakePayment.aspx ”,因为它违反了以下内容安全策略指令:“form-action 'self'”。

在 Mozilla Firefox 上,我看到以下内容:

内容安全策略:该页面的设置阻止资源的加载在https://s4.mylivechat.com/livechat2/images/sprite.png(“IMG-SRC http://smehelp.themarketplace.ng数据:”)

内容安全策略:该页面的设置阻止加载http://smehelp.themarketplace.ng/purchase/summary(“form-action 'self'”)上的资源。

在网上检查解决方案,我已将以下内容添加到我的页眉

        <meta http-equiv="Content-Security-Policy" content="form-action 'self'">
Run Code Online (Sandbox Code Playgroud)

但问题仍然存在。

这导致我无法提交表单。早些时候,表单曾经被提交,但我今天刚刚尝试并观察到这个错误。

我在 MAC 操作系统上运行 Google Chrome 版本 55.0.2883.95(64 位)。

对于尽快解决此问题的任何建议,我将不胜感激。

谢谢

RiZ*_*KiT 7

如果您查看此处是因为您想要将表单发送到相同的 URL(这应该可以通过form-action 'self')或规则中列出的另一个 URL form-action,但随后重定向,则可能是以下原因:https://github.com/w3c/ webappsec-csp/issues/8(包括长时间的讨论)。原因之一是: https: //cheatsheetseries.owasp.org/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.html

重定向的目标 url 在 CSP 报告中不可见(这确实令人困惑)的原因是安全问题,请参阅https://w3c.github.io/webappsec-csp/#create-violation-for-request,否则可以分析表单端点的行为。

TL:博士; Chrome 和 Safari 不允许在提交表单后进行重定向,除非目标 URL 在 form-action CSP 规则中列出,即使它是不包含原始表单数据的 GET 重定向。


Ana*_*hat 6

Content-Security-Policy您正在响应标头中传递值:

基本 uri '无'; 默认 src 'self' https://s4.mylivechat.com;child-src '无'; 连接-src'自我';font-src 'self' https://fonts.googleapis.com https://maxcdn.bootstrapcdn.com https://fonts.gstatic.com;形式-动作“自我”;框架祖先“无”;img-src“自身”数据:;媒体-src'自我';对象-src'无';script-src 'self' https://www.youtube.com https://maps.google.com https://www.google-analytics.com https://mylivechat.com https://s4.mylivechat。 com https://maps.googleapis.com '不安全内联' '不安全评估'; style-src 'self' https://fonts.googleapis.com https://s4.mylivechat.com https://maxcdn.bootstrapcdn.com 'unsafe-inline'

您添加到页面元的内容安全策略将被忽略,因为它出现在响应标头中。

您需要对您在响应标头中发送的 CSP 进行以下添加(以粗体显示)。

基本 uri '无'; 默认 src 'self' https://s4.mylivechat.com;child-src '无'; 连接-src'自我';font-src 'self' https://fonts.googleapis.com https://maxcdn.bootstrapcdn.com https://fonts.gstatic.com;表单操作“自我” https://cipg.stanbicibtcbank.com/MerchantServices/MakePayment.aspx;框架祖先“无”;img-src“自我”数据: https: //s4.mylivechat.com;媒体-src'自我';对象-src'无';script-src 'self' https://www.youtube.com https://maps.google.com https://www.google-analytics.com https://mylivechat.com https://s4.mylivechat。 com https://maps.googleapis.com '不安全内联' '不安全评估'; style-src 'self' https://fonts.googleapis.com https://s4.mylivechat.com https://maxcdn.bootstrapcdn.com 'unsafe-inline';