Loading
B2C Commerce 入门
目录
选择筛选器

          没有结果
          没有结果
          以下是一些搜索提示

          检查关键字的拼写。
          使用更普遍的搜索词。
          选择更少的筛选器,并扩大搜索范围。

          搜索所有 Salesforce 帮助
          Business Manager CSRF 保护

          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 发现了可能出现这种情况的若干位置,包括:

          • JavaScript 变量内部形成的 URL,作为 JavaScript 方法的参数或点击处理程序。
          • <meta> 标签内部形成的 URL,特别地,例如刷新。
          • <isset> 或自定义标签内部形成的 URL。
          • 管道、管道字典或代码内部定义的 URL。

          开发者可以使用 dw.web.URL.appendCSRFTokenBM() 方法手动添加令牌。例如,开发者可能更改以下代码:

          <meta http-equiv="refresh" 
          content="0; URL=${dw.web.URLUtils.url('ViewAccount-Show').toString()}">

          为这个:

          <meta http-equiv="refresh" 
          content="0; URL=${dw.web.URLUtils.url('ViewAccount-Show').appendCSRFTokenBM().toString()}">
          Business Manager 用户没有受到攻击,日志项表明令牌无效。由于令牌在 60 分钟以后失效,用户可以返回旧浏览器标签,并提出无法验证的请求。这种情况还可能在少数页面上发生,这些页面更新该页面内显示的数据,并且不会导航至 Business Manager 内的另一个页面。 Business Manager 用户可以刷新发生错误的页面。
          Business Manager 用户没有受到攻击,而是从 Business Manager 向服务器发出请求,用户通过电子邮件、书签或独立网站发送请求。

          如果您想让用户通过电子邮件、书签或独立网站发出请求,推荐途径是在管道内创建新开始节点,而该管道将作为至所需页面的安全重定向。此任务必须由开发者执行。

          开发者完成本次任务后,管理员可以将重定向 Pipeline 开始节点组合列入允许列表。这会对所有用户禁用该开始节点的 CSRF 验证。

          Business Manager 用户没有受到攻击,但请求不能受保护,或已被保护。 管理员可以使用 CSRF 允许列表临时禁用对 Pipeline 或 Pipeline /开始节点组合的验证。通常不建议这样做。
          自动脚本用于从 Business Manager 实例收集数据,或导入自动测试的数据。

          管理员可以使用 CSRF 允许列表来允许脚本的用户-代理。强烈建议,如果使用这种方法,应使用非浏览器用户-代理字符串。这会禁用所有请求的验证逻辑,即用户-代理精确匹配该允许列表值的情况。

          客户还可以选择提供 CSRF 令牌(嵌入每个 Business Manager 页面)的自动脚本知识,并使用基于脚本请求的令牌。这会模拟基于浏览器导航的行为,并是推荐方法。

           
          正在加载
          Salesforce Help | Article