首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何防止CSRF攻击?

如何防止CSRF攻击?
EN

Stack Overflow用户
提问于 2022-03-01 08:14:04
回答 1查看 251关注 0票数 -1

我想阻止CSRF攻击我的API (速成应用程序nodejs),我搜索了谷歌和youtube,但我找不到办法去做。在youtube教程中,它说生成一个令牌并将其发送到客户端,但黑客会不会仅仅发送一个请求来获取csrf令牌并绕过csrf?我很困惑请帮帮忙。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-01 08:30:13

传统的 CSRF攻击的工作方式是在攻击者的站点上放置一个预先填充的表单,并将其提交给跨源攻击。然后,它使用与请求一起自动发送的凭据,以浏览器所有者身份的名义发送攻击者的数据。

通过在cookie(或会话)和表单中放置一个令牌,并检查它们是否匹配,您可以防范这种情况。攻击者不能仅仅发送一个请求来获取CSRF令牌,因为:

如果

  • 让用户发出请求,那么相同的原产地策略将阻止他们读取带有令牌的响应--
  • ,如果他们直接发出请求,那么他们将没有用户的cookie,因此将得到不同的(不匹配的)令牌

当您处理web服务(您需要使该API跨源工作)时,情况就不同了。这里的主要防御措施是设计API,以便:

  • 凭证无法自动发送(例如在授权头中),因此攻击者无法使用它们发出请求。
  • 请求是一种格式,它需要CORS预飞行请求(例如,带有Content-Type: application/json请求头)。

…或者两者都是。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71305477

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档