栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

jQuery .ajax()是否需要CSRF令牌?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

jQuery .ajax()是否需要CSRF令牌?

CSRF的风险在于,外部站点可能会将数据发送到您的站点,而用户浏览器会自动将身份验证cookie与它一起发送。

您需要某种方式来执行接收操作(您的

$.ajax()
方法正在向其发送POST数据),以便能够检查请求是否来自您站点上的另一个页面,而不是外部站点。

有两种方法可以执行此操作,但是建议的方法是在请求中添加令牌,您可以检查令牌,而黑客无法访问令牌。

最简单的说:

  • 登录时,创建一个长随机字符串令牌并将其保存给用户。
  • $.ajax()
    包含令牌的请求中添加参数。
  • 根据要求检查令牌是否与您为用户保存的令牌匹配。
  • 如果令牌不匹配,则说明您有CSRF破解。

黑客无法进入您的数据库,并且实际上无法读取您发送给用户的页面(除非他们受到XSS攻击,但这是另一个问题),因此无法欺骗令牌。

与令牌有关的所有事情是, 您可以预测 (并验证)令牌, 而黑客则不能

因此,最简单的方法是生成长而随机的内容并将其存储在数据库中,但是您可以构建加密的内容。我不仅会使用MD5用户名-
如果CSRF攻击者弄清楚了如何生成令牌,那么您将被黑客入侵。

另一种方法是将令牌存储在cookie中(而不是数据库中),因为攻击者无法读取或更改您的cookie,只是导致它们被重新发送。然后,您就是HTTP
POST数据中的令牌与cookie中的令牌匹配。

您可以使它们变得更加复杂,例如,每次成功使用(防止重新提交)时都会更改的令牌,或者特定于用户和操作的令牌,但这是基本模式。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/382567.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号