我应该在我的Web应用程序中实现cookie吗?

问题描述 投票:1回答:2

我正在使用连接到快速后端的react前端来建立电子商务商店。我想要一种保持状态的方法,以便可以跟踪当前用户及其购物车,因此我在应用程序中实现了cookie。但是经过一番思考,我决定改用本地存储,因为不需要将存储的任何信息发送到服务器。不使用cookie会带来任何安全漏洞吗?或者仅使用本地存储就可以吗?

javascript reactjs cookies local-storage
2个回答
0
投票

但是经过一番思考,我决定改用本地存储,因为正在存储的信息都不需要发送到服务器。

您以完全正确的方式做出了此决定!

除了易于使用之外,本地存储更加安全,高效,因为您不会在每个请求中发送额外的数据。

[仅在您要标识会话时才需要Cookie。如今,由于很多站点都在客户端运行,并且只有API调用是动态的,因此对Cookie的需求越来越少。


-2
投票

您的主要关注点应该是XSS(跨站点脚本)攻击。如果您在React应用程序中的任何地方使用以下内容:

<div dangerouslySetInnerHTML={{__html: title}}></div>

[title的值是您从服务器加载的,那么您可能有插入一个可以访问localStorage内容的标记的风险。

您可以阅读有关XSS漏洞here的更多信息。

编辑:例如,假设您要从数据库中加载用户的用户名,然后将其显示在前端。返回用户名之前,应确保从数据库加载的值仅包含允许用于用户名的值(在这种情况下,假设字母和空格)。您可以使用正则表达式和.match()函数来检查用户名是否仅包含允许的字符:

if(username.match(/[A-Za-z ]+/)) {
  // all good!
} else {
  // there was an invalid character
}
© www.soinside.com 2019 - 2024. All rights reserved.