当前位置: 首页 > 知识库问答 >
问题:

这个JWT实现是否可以防止XSS和CSRF攻击,同时仍然允许我访问有效负载?

单于高逸
2023-03-14

我正在为我的web应用程序实现JWT身份验证和授权,可能需要一些帮助来识别我的方法中的漏洞。我见过许多简单地将访问令牌设置为httpOnly cookie的方法,但是,在我的访问令牌中html" target="_blank">声明我的前端需要访问。我想出了这个方法来解决这个问题。

登录时,用户提供一个用户名和密码来交换几个项目:

    < Li > CSRF代币 < Li > JWT访问令牌的标头和签名 < Li > JWT访问令牌的有效负载 < Li > JWT刷新令牌

在我的方法中,所有这些项目都设置为cookie。JWT刷新令牌以及JWT访问令牌的标头和签名都存储在http唯一的安全cookie中。JWT访问令牌的有效负载只是存储为常规的旧cookie,以便我的前端可以访问它(我不会在此令牌中存储任何个人/不安全信息)。

例如,如果我的 JWT 访问令牌是 header.payload.signature,那么我将访问令牌拆分为 header.signaturepayload这些值存储在各自的 Cookie 中。

到了提出需要授权的请求的时候,我的后端会获取所有JWT访问令牌cookie,将它们放回一起,然后检查签名。

这种方法是否减轻了XSS和CSRF攻击,同时仍然提供了对JWT有效载荷的安全访问?

共有2个答案

陈文景
2023-03-14

JWT令牌用于身份验证。它生成并存储在客户端中,当它过期时,会发出新的令牌。

CSRF可以是基于会话或基于请求的不同类型。

我不认为JWT可以取代CSRF,XSS

孟祯
2023-03-14

听起来这行不通。从根本上说,您的代码可以访问的任何内容,攻击者代码也可以访问。所以,你不想要任何“我的前端可以访问”的东西。在我看来,唯一能提供最佳覆盖范围的组合:

  • Http比如说安全SameSite cookies(Mozilla文档)
  • 使用CSRF令牌保护POST/PUT/DELETE
  • 防止注入脚本的内容安全策略

除此之外,更简单更好。试图推出一个聪明的解决方案会导致坏事。

 类似资料:
  • 问题内容: 使用AntiForgeryToken要求每个请求都传递一个有效的令牌,因此带有简单脚本将数据发布到我的Web应用程序的恶意网页将不会成功。 但是,如果恶意脚本首先发出一个简单的GET请求(由Ajax发出),以便在隐藏的输入字段中下载包含防伪令牌的页面,然后将其提取出来并用于进行有效的POST,该怎么办? 是否有可能,或者我缺少什么? 问题答案: 是的,这就是您需要做的。 只要您在每个受

  • 本文向大家介绍Django如何实现防止XSS攻击,包括了Django如何实现防止XSS攻击的使用技巧和注意事项,需要的朋友参考一下 一、什么是XSS攻击 xss攻击:----->web注入   xss跨站脚本攻击(Cross site script,简称xss)是一种“HTML注入”,由于攻击的脚本多数时候是跨域的,所以称之为“跨域脚本”。   我们常常听到“注入”(Injection),如SQL

  • 本文向大家介绍如何防止XSS攻击?相关面试题,主要包含被问及如何防止XSS攻击?时的应答技巧和注意事项,需要的朋友参考一下 (1) 将前端输出数据都进行转义 (2) 将输出的字符串中的\反斜杠进行转义 (3) 从url中获取的信息,防止方法是由后端获取,在前端转义后再行输出 (4) 使用cookie的HttpOnly属性,保护好cookie 详细参见:http://blog.csdn.net/fe

  • 本文向大家介绍csrf和xss的网络攻击及防范?相关面试题,主要包含被问及csrf和xss的网络攻击及防范?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: CSRF:跨站请求伪造,可以理解为攻击者盗用了用户的身份,以用户的名义发送了恶意请求,比如用户登录了一个网站后,立刻在另一个tab页面访问量攻击者用来制造攻击的网站,这个网站要求访问刚刚登陆的网站,并发送了一个恶意请求,这时候CSRF就

  • 本文向大家介绍Yii框架防止sql注入,xss攻击与csrf攻击的方法,包括了Yii框架防止sql注入,xss攻击与csrf攻击的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Yii框架防止sql注入,xss攻击与csrf攻击的方法。分享给大家供大家参考,具体如下: PHP中常用到的方法有: 调用: (必须放在接收数据之外) 注意: 表单提交值,为防止csrf攻击,控制器中需要加上:

  • 防御XSS攻击的一般原理 cleaner是Jsoup的重要功能之一,我们常用它来进行富文本输入中的XSS防御。 我们知道,XSS攻击的一般方式是,通过在页面输入中嵌入一段恶意脚本,对输出时的DOM结构进行修改,从而达到执行这段脚本的目的。对于纯文本输入,过滤/转义HTML特殊字符<,>,",'是行之有效的办法,但是如果本身用户输入的就是一段HTML文本(例如博客文章),这种方式就不太有效了。这个时