使用Express Backend API响应SPA-将JWT存储在本地存储中,并限制API仅访问SPA的Web服务器IP

问题描述

我正在从事一个项目,该项目涉及使用React构建的SPA Web应用程序,并连接到运行Express的API。

我已经阅读了许多有关stackoverflow的文章和问题。 (特别是这个link的答案非常详细)。但是,有一点我无法理解。我搜索了问题,但找不到任何包含后端API端IP限制的答案。

我想将JWT发送给从SPA登录的授权用户,并将JWT存储在客户端的localstorage中。后端API仅可从SPA的IP地址访问,并且对其他任何IP均不开放。 CORS也将配置为仅与SPA域名一起使用。

因此,考虑到此配置,将JWT存储在本地存储中仍然不安全吗?由于该API仍然只能通过一个IP进行访问,因此攻击者在通过XSS攻击抓住它后如何使用访问令牌?

解决方法

可以使用几种攻击来访问服务器:

  1. Ip spoofing
  2. SSRF
  3. ip验证漏洞,考虑到您需要检查ip的事实,ip具有多种形式,ipv4,ipv6,十六进制,八进制等...
  4. 防火墙/反向代理漏洞利用

最佳做法是为了避免错误,请遵循它们。

顺便说一句,我总是推荐this article来理解JTW身份验证。 (阅读后,我已更改了我的应用实现:))

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...