技术文章
发送端HTTPS中的CSRF保护- SAP集成套装
什么是CSRF?
跨站请求伪造(CSRF)是一种攻击,迫使终端用户在他们当前已经过身份验证的web应用程序上执行不需要的操作。在任何API中启用此特性都是防止这种攻击的方法之一。
CSRF保护来自其他网络的请求,当他们在您的系统中发送可修改的请求时,例如POST, PUT, DELETE等。
CSRF是如何工作的?
一般来说,每个请求请求者都必须通过调用请求者用来发送可修改数据的相同端点,从相同的服务提供者获得令牌。为了从服务请求者那里获得令牌,需要通过传递“X-CSRF-Token”作为头并将值作为“Fetch”来发送与GET/OPTION相同的请求。因此,您将收到令牌,该令牌需要在调用中进一步作为报头“X-CSRf-Token”的值传递。
CSRF在HTTPS适配器中的实现与工作
我目前正在使用SAP Integration Suit的试用版本进行演示。
在您的环境中创建一个演示IFlow,并使用Sender端的HTTPS适配器来提供您的端点,并勾选Connection选项卡中的“CSRF Protection”框。
Sender HTTPS Apadter配置
部署IFlow并从监视中获取端点。在这个Iflow中,我使用了一个内容修改器来接收虚拟响应。
邮差配置:
获得端点后,打开邮差并使用HEAD/OPTION操作创建一个新请求,并在基本身份验证中提供凭据,并使用IFlow生成的相同端点来获得CSRF令牌。
注意:CSRF令牌仅对从中生成它的IFlow有效,不能在另一个IFlow中使用从一个IFlow生成的令牌。
一旦你在响应检查报头部分发送了请求,并且带有“X-CSRF-Token”的报头,你将得到POST/PUT/DELETE请求中需要使用的令牌。
注意:此请求在Integration Suit监视中不可见。
令牌响应
复制2中的令牌nd请求相同的头,你将得到你想要的结果。
带有令牌的原始POST请求
我们将尝试相同的2nd请求时没有传递此报头,并导致403禁止错误。
没有令牌的原始POST请求
可以在实际场景中配置和使用CSRF,以获得更好的保护。
总结
在这篇博客中,我们将通过在IFlow中启用CSRF来获得额外的保护。这也可以用于OData适配器。在将端点交给第三方之前,我们可以使用邮差对IFlow进行测试。
谢谢你阅读我的博客。如果您在评论区提供您的反馈,并关注更多与集成(SAP PI/PO/CPI/IRPA)相关的类似内容,这将是很有帮助的。
请关注社区,以便更好地了解更多主题。