gpt4 book ai didi

security - 单独使用 nginx 进行简单的 CSRF 保护

转载 作者:行者123 更新时间:2023-12-03 16:16:07 25 4
gpt4 key购买 nike

我有一个提供纯 HTML 和 JS 文件的 nginx 服务器。

然后,js 代码调用各种 REST API 从 API 服务器获取/发布数据。

如果 nginx 收到对/api/位置的请求,它会将请求转发到另一个处理所有 API 的服务器。这个 api 服务器是用 Ruby on Rails 构建的。

由于我所有的纯 HTML 页面都是由 nginx 直接提供的,因此在呈现它们时我不能有服务器端 session 。

我可以做些什么来防止 CSRF 攻击?

最佳答案

CSRF token 的目的是要求攻击者从您的域中读取一个值以便发送请求。

因此,您可以在 API 中有一个单独的端点,它只返回一个 CSRF 表单 token 。

由于同源策略,攻击者将无法读取 token (与他们无法从 HTML 源读取 token 的原因相同),因此您将是安全的。
这样做的缺点是需要额外的 HTTP 请求。

此外,请确保响应不是有效的 Javascript,否则攻击者可以将其作为 <script> 运行。标记并使用原型(prototype)和属性技巧来读取值

关于security - 单独使用 nginx 进行简单的 CSRF 保护,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20826201/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com