匿名用户或者非管理员用户不能查看 organization unit 页面:
http://cloudapp.azure.com:4201/powertools-spa/en/USD/organization
期望的行为:
Redirect to login. Anonymous users must not see this page as it reveals the available components of an organization.
只有管理员才能访问。
原因:
Doesn’t conform with product security standard SEC-248.
分析
这主要是体验问题,而不是安全威胁。
OCC API 受到保护,如果没有访问令牌,您将无法获取任何安全数据。
CMS 组件受到保护,您可以限制在 OCC CMS 中公开它们。
CMS 页面不受保护,但只会公开页面元信息(即标题)而不是实际内容。
Spartacus 已经做了足够的工作来保护路由/组件。真正的问题在于 OCC CMS (CMSX-8491)。
对于这种情况,我们已经在 /organization 登陆页面的示例数据中保护了 CMS 组件。这超出了我个人的野心,但现在我们拥有了,我们可以保持这样。
在这种特定情况下,机密性影响可以忽略不计。未经授权的用户(包括匿名用户)只能看到没有严格保密要求的内容。例如,用户可以看到横幅并可以点击链接,但是 OCC API 中的守卫阻止然后看到任何机密信息。
如果其他 CMS 页面实际上包含机密数据,则情况可能略有不同。在这种情况下,斯巴达克斯几乎无能为力。攻击者可以直接使用 OCC CMS API 绕过任何 Spartacus 特定的安全控制。因此,此类安全控制必须由 OCC API 实现,请参阅 CMSX-8491。
下列的 impex 可以为 CMS component 增加访问控制:
INSERT_UPDATE CMSUserGroupRestriction;$contentCV[unique=true];uid[unique=true];name;userGroups(uid);includeSubgroups;components(&componentRef) ;;MyCompanyLinkAdminGroupRestriction;My Company Link Admin Group Restriction;b2badmingroup;true;BudgetsHomeLink,CostCentersHomeLink,UnitsHomeLink,UsersHomeLink,UserGroupsHomeLink,PurchaseLimitsHomeLink
最后的决定:匿名用户也能访问 b2b organization page, 但是看不到任何敏感信息。
2022-5-16 更新
CUSTOMER_SYS_ADMIN role 和 subscription