您在此处:
Business Manager CSRF 保护
CSRF 是一种恶意攻击者使用的技术,它可以强迫受害者对 Business Manager 发起保护请求 ― 这种请求可能严重干扰您的 eCommerce 业务。本主题适用于 B2C Commerce。
CSRF 攻击
所有 Business Manager 页面具有 CSRF 攻击自动保护。每当 Business Manager 页面向 Commerce Cloud 服务器发出请求时,页面就会自动在请求中注入特别 CSRF 令牌。服务器收到请求后,服务器确定该请求是否在试图进行受保护(可能有危害)操作。如果请求试图执行此类操作,服务器自动验证注入的令牌。如果它能成功验证令牌,服务器完成受保护操作,并返回预期响应,否则从 SIG 的 17.4 和 PIG 的 17.5 开始,服务器记录警报,并且在某些情况下返回错误页面。
如果看到错误页面,按给定步骤进行,并重试发生错误的页面。如果重试成功,则可以忽略错误,但如果重试失败,并且错误再次出现,则可能遇到 ― 并受到 ― CSRF 攻击保护。在此情况下,请联系安全部门。
并不是所有 CSRF 相关错误或日志条目都意味着攻击。如果您是 Salesforce 管理员,则可以排除 CSRF 日志条目错误,以调查其根本原因,并确定适当的操作过程。在一些情况下,如果您在使用自定义 Business Manager 扩展,可能需要开发者修改扩展的自定义代码,以正确插入 CSRF 令牌。在其他情况下,可以选择将具体 Pipeline 或用户代理列入允许列表。
排除 CSRF 日志条目问题
CSRF 日志条目具有以下格式:
管道 CSRF 令牌无效 [原因]: 管道: (令牌|无令牌)::引用站点/原站点: URL::用户代理:代理
对象:
-
原因是说明为什么验证失败的字符串。一些可能原因是:
- 原站点验证― 请求来自不是 Business Manager 页面的网站。
- 无令牌― 无 CSRF 令牌进行请求。
- CSRF 令牌验证― 令牌对此用户不正确,或超时(1 小时超时)。
- 发生异常― 处理期间发生意外(此错误是捕获全部)。
- 管道是请求中的管道名称。
- 令牌是服务器接收的令牌(如果请求发送了令牌)。
- 无令牌是说明没有在请求中找到令牌的字符串:“CSRF 令牌不存在。”
- URL 是说明请求出处的 URL。
- agent 是用户代理的前 32 个字符。
您可以通过搜索字符串“管道 CSRF 令牌”在日志文件中找到这些项目。
请参阅 Log Center。
每当服务器需要有效的 CSRF 令牌但找不到或找到无效令牌时,就会创建日志条目。有几种情况下您可能会遇到此行为,如下表所述:
| 情况 | 可能解决方案 |
|---|---|
| Business Manager 用户受到攻击。如果用户访问另一个站点后,到达错误页面,则其他站点可能会尝试向 Business Manager 发出受保护请求,该构架已对此攻击提供保护。 | Business Manager 用户应将此攻击向其安全部门报告。 |
Business Manager 用户没有受到攻击,日志项表明没有找到令牌。可能的原因是自动令牌注入没有正确注入自定义 Business Manager 扩展。 Commerce Cloud 发现了可能出现这种情况的若干位置,包括:
|
开发者可以使用 为这个: |
| Business Manager 用户没有受到攻击,日志项表明令牌无效。由于令牌在 60 分钟以后失效,用户可以返回旧浏览器标签,并提出无法验证的请求。这种情况还可能在少数页面上发生,这些页面更新该页面内显示的数据,并且不会导航至 Business Manager 内的另一个页面。 | Business Manager 用户可以刷新发生错误的页面。 |
| Business Manager 用户没有受到攻击,而是从 Business Manager 向服务器发出请求,用户通过电子邮件、书签或独立网站发送请求。 | 如果您想让用户通过电子邮件、书签或独立网站发出请求,推荐途径是在管道内创建新开始节点,而该管道将作为至所需页面的安全重定向。此任务必须由开发者执行。 开发者完成本次任务后,管理员可以将重定向 Pipeline 开始节点组合列入允许列表。这会对所有用户禁用该开始节点的 CSRF 验证。 |
| Business Manager 用户没有受到攻击,但请求不能受保护,或已被保护。 | 管理员可以使用 CSRF 允许列表临时禁用对 Pipeline 或 Pipeline /开始节点组合的验证。通常不建议这样做。 |
| 自动脚本用于从 Business Manager 实例收集数据,或导入自动测试的数据。 | 管理员可以使用 CSRF 允许列表来允许脚本的用户-代理。强烈建议,如果使用这种方法,应使用非浏览器用户-代理字符串。这会禁用所有请求的验证逻辑,即用户-代理精确匹配该允许列表值的情况。 客户还可以选择提供 CSRF 令牌(嵌入每个 Business Manager 页面)的自动脚本知识,并使用基于脚本请求的令牌。这会模拟基于浏览器导航的行为,并是推荐方法。 |

