这是更概念性的问题 - 当我们像Angular一样使用SPA时,我们使用Implicit Flow进行身份验证。在此流程中,我们将令牌存储在localStorage或sessionStorage中。
当我们需要调用任何API时,我们曾经将该访问令牌传递给该API以获取数据或POST数据。
我在这里有一个问题 - 如果有任何恶意用户发现该令牌,那么他可以使用邮递员或任何其他客户端使用一些垃圾数据进行数千次POST API调用。
我们怎样才能避免这种情况呢? 提前致谢!!!!
我知道像REST API这样的一些东西,可以实现CORS来解决这个问题。当有人调用API时,我们可以检查ORIGIN标头。
但我读到ORIGIN Header也不安全。恶意用户可以通过代码轻松设置它,他可以通过编程方式调用API。那么如何处理这样的条件呢?
请参阅下面的图片了解更多详情 -
许多SPA应用程序支持JSON Web Token(JWT)令牌,通常用户身份验证将在Authorization Server中发生,它将返回JWT令牌。使用JWT令牌,前端应用程序可以作为Header Auth Token的一部分发送。
通常令牌将存储在会话/本地存储中以维护有状态会话b / w客户端和服务器。
由于客户端框架不提供更多安全性。这些令牌验证需要在后端处理。
1)启用CORS,因此只允许使用特定域名(https://example.com)使用“Access_control_allow_origin”访问API。
2)如果攻击者窃取了令牌,他将通过另一个域访问,后端服务器可以根据来源拒绝。
3)如果您想要更高的安全性,您可以选择公钥/私钥验证,这将更加安全。