And*_*yak 6 content-security-policy azure-ad-b2c aad-b2c
在登录/重置密码流程中的不同步骤上单击“下一步/继续”按钮时,Azure B2C 页面会引发内容安全策略错误。如果我输入电子邮件(或没有电子邮件)并在登录的第一步单击“下一步”按钮,则会引发错误,但如果按 Enter 键,则不会出现错误。
图片1:
原因是,一方面,这些页面上的 CSP 不允许使用内联代码,但另一方面,Azure B2C 插入了一些内联代码。表单中的 Fe action="javascript:void(0)"。
图片2:
调试 js 代码显示有一行代码阻止( action="javascript:void(0)")在按 Enter 键时调用此内联操作,并且在单击“下一步”按钮时没有此类阻止。不同步骤上的表单中有几个这样的地方。
这部分代码是由Azure B2C生成的。无法更改 CSP,因为它也在 Azure 端设置。事实上,这个错误并不会阻止登录流程,而是在每个步骤上抛出很多错误
有人有同样的问题并建议如何避免吗?
Javascript 导航action="javascript:void(0)"是为了防止意外提交表单,因为真正的 submussion 是在验证数据后由 javascript 执行的。
内容安全策略将其action="javascript:void(0)"视为内联脚本并阻止它执行相同的操作 - 阻止表单提交。
登录Azure B2C页面的逻辑没有被违反,只是控制台中出现一条烦人的消息。
当您按 Enter 并按 Next 时出现不同的行为是由于事件处理程序之一未调用event.preventDefault()。
因此,您可以完全忽略此 CSP 错误 - 没有任何有用的内容被阻止。这个错误是Azure AD B2B的“良心”,你可以更改CSP或登录表单代码,并添加'unsafe-inline'导致更具破坏性的序列(XSS功能)。因此,Asure B2B 选择了两害相权取其轻。
注意:据我所知,您可以创建“自定义授权页面”,也许不会出现此错误。
| 归档时间: |
|
| 查看次数: |
1967 次 |
| 最近记录: |