保护任何Web应用程序的有效提示
如果您要保护应用程序,则一定要使用HTTPS而不是HTTP,这可以确保您与用户之间创建安全通道,以防止嗅探发送到用户和返回的数据,并帮助保持交换的数据保密。
可以使用JWT(JSON Web令牌)来保护RESTful API,与服务器端会话相比,这具有许多优点,主要有:
1-更具可扩展性,因为您的API服务器不必为每个用户维护会话(当您有许多会话时,这可能是一个巨大的负担)
2-JWT是自包含的,具有声明,例如定义用户角色及其可以访问的内容以及发行日期和到期日期(在此之后JWT将无效)
3-跨负载平衡器更易于处理,如果您有多个API服务器,因为您不必共享会话数据,也不必配置服务器以将会话路由到同一服务器,每当携带JWT的请求命中任何服务器时,它都可以进行身份验证和授权
4-对您的数据库的压力更小,因为您不必为每个请求不断存储和检索会话ID和数据
5-如果使用强密钥签署JWT,则无法篡改JWT,因此您可以相信发送请求的JWT中的声明,而无需检查用户会话以及其是否已获得授权,您只需检查JWT,然后就可以知道该用户可以做什么。
许多库提供了易于使用的方式,在大多数编程语言中创建和验证JWT,例如:在node.js中,最受欢迎的之一是jsonwebtoken
由于REST API通常旨在保持服务器无状态,因此使用JWT与该概念更兼容,因为每个请求都附带一个自包含的授权令牌(JWT),而服务器无需跟踪用户会话,与使服务器有状态的会话相比,后者记住用户及其角色,但是,也广泛使用会话并具有其优点,如果您想要搜索,则可以进行搜索。
需要注意的一件重要事情是,您必须使用HTTPS安全地将JWT传递给客户端,并将其保存在安全的位置(例如本地存储中)。
您可以从此链接了解有关JWT的更多信息