跨平台 CSRF
Cross Platform CSRF
我们有一个 ASP.Net Web 应用程序,我们正在考虑将其移动到另一个堆栈,例如 Python 或 Ruby。我们不想一口气替换掉整个应用程序,而是希望分段替换暴露的 REST API。我们的想法是 运行 现有 .Net 应用程序旁边的新网络应用程序,并在我们实施时路由一些 ajax 请求。
我的问题是:
是否有任何跨平台 CSRF 库可用于在 .Net 端和 Python/Ruby/Node 堆栈上验证请求?
理想情况下,一旦 API 端点在新堆栈中实现,我们只需将 REST 端点指向新的 url。
您可以使用诸如 Double Submit Cookies 之类的简单技术来实现您自己的代码 - 双方的代码应该相当直接且可互操作。
Double Submit Cookies 通过设置随机值(希望由 CSPRNG 或使用其他不可预测的方法生成)作为 cookie 和隐藏的表单字段来工作。
由于 Same Origin Policy,任何攻击者都无法从隐藏的表单字段中检索此值,因此无法发送 cookie 值与隐藏表单字段相同的跨站点请求.将值存储在 cookie 中就不需要在服务器端存储任何内容。
因为这是一个简单的检查,并且可以在两个框架中轻松实现(伪代码:if cookie != hidden_field then <reject>
),所以实现起来应该很简单。
我们有一个 ASP.Net Web 应用程序,我们正在考虑将其移动到另一个堆栈,例如 Python 或 Ruby。我们不想一口气替换掉整个应用程序,而是希望分段替换暴露的 REST API。我们的想法是 运行 现有 .Net 应用程序旁边的新网络应用程序,并在我们实施时路由一些 ajax 请求。
我的问题是: 是否有任何跨平台 CSRF 库可用于在 .Net 端和 Python/Ruby/Node 堆栈上验证请求?
理想情况下,一旦 API 端点在新堆栈中实现,我们只需将 REST 端点指向新的 url。
您可以使用诸如 Double Submit Cookies 之类的简单技术来实现您自己的代码 - 双方的代码应该相当直接且可互操作。
Double Submit Cookies 通过设置随机值(希望由 CSPRNG 或使用其他不可预测的方法生成)作为 cookie 和隐藏的表单字段来工作。
由于 Same Origin Policy,任何攻击者都无法从隐藏的表单字段中检索此值,因此无法发送 cookie 值与隐藏表单字段相同的跨站点请求.将值存储在 cookie 中就不需要在服务器端存储任何内容。
因为这是一个简单的检查,并且可以在两个框架中轻松实现(伪代码:if cookie != hidden_field then <reject>
),所以实现起来应该很简单。