我正在通过 iFrame 链接将 salesforce.com 与遗留系统集成,该链接由orgId作为请求参数和遗留系统(Java 应用程序)在获取 orgId 作为遗留系统的请求参数检查数据库时是否该 orgId 已经存在(之前存在意味着 Salesforce 用户有权访问旧系统应用程序),因此仍未回答的问题是,如果入侵者以某种方式捕获了 orgId,那么他们可以轻松访问旧系统应用程序,因此挑战是阻止任何此类攻击。仅供参考,iFrame 链接和 salesforce 站点都在 https 协议上运行。
2 回答
除了 Org Id,您还可以在查询字符串中传递活动的 Salesforce SessionId 和 ServerURL。然后,旧应用程序可以使用这些来建立与 Salesforce 的 SOAP API 会话,并验证 OrgId 是否与会话详细信息匹配。
然后入侵者需要对当前用户 Salesforce 会话具有完全访问权限,才能通过 iframe 访问旧版应用程序。如果他们这样做了,那么您的安全性已经受到了充分的威胁,以至于您遇到了更大的问题。
与其使用静态 orgId,不如使用动态令牌。有几种方法可以实现它,例如,您可以设计要加密的令牌并包含 orgId 和时间戳,然后在 salesforce 中动态生成时间戳,并且只允许在 X 分钟/秒内有效的令牌(取决于您的用户如何使用旧版应用程序)。
如果入侵者有权访问 salesforce 帐户(保存 orgId 的位置),这不会阻止入侵者访问旧版应用程序,以防止您需要停止使用 orgId 而是使用某种注册并生成如果有人滥用它,您可以在以后撤销它。
那是当 legacyapp 的用户注册时(或您必须在 salesforce 中最初保存 orgId 的任何过程),而不是保留 orgId,调用 legacy 应用程序并生成令牌(保存在 legacy 应用程序的数据库中),稍后可以在 iFrame 中使用。