我将用户信息存储在vuex中,如{username: 'aa', role: 'admin'},roles:admin/user。admin可以做任何事情。所以我想知道用户是否可以通过Chrome Devtools将他的角色更改为admin?将数据保存到vuex安全吗?
{username: 'aa', role: 'admin'}
admin
dy1byipe1#
不,Vuex并不“安全”,从某种意义上说,你不能假设其中的任何东西都没有被篡改。然而,这样的角色标志的作用仅仅是帮助决定用户是否应该能够访问受保护的路由,或者在UI中看到只有管理员用户应该看到的东西。如果在客户端更改了它,唯一的影响 * 应该 * 是你的前端看起来坏了,因为它试图加载和显示它实际上没有访问权限的管理内容。在这种情况下,您的实际安全机制是存储在localStorage中的令牌、cookie或其他机制,并随您发出的每个请求一起发送,以便后端可以实际验证您是否有权访问该资源。简而言之,服务器不应该仅仅因为Vue客户端声称是管理员用户就允许管理员访问;服务器应该识别和认证客户端,并且只允许用户被授权的请求。
fhg3lkii2#
Vue Devtools只能在开发模式下访问,所以如果你将应用部署到生产环境,它将不可用。因此,它绝对安全。
2条答案
按热度按时间dy1byipe1#
不,Vuex并不“安全”,从某种意义上说,你不能假设其中的任何东西都没有被篡改。然而,这样的角色标志的作用仅仅是帮助决定用户是否应该能够访问受保护的路由,或者在UI中看到只有管理员用户应该看到的东西。如果在客户端更改了它,唯一的影响 * 应该 * 是你的前端看起来坏了,因为它试图加载和显示它实际上没有访问权限的管理内容。
在这种情况下,您的实际安全机制是存储在localStorage中的令牌、cookie或其他机制,并随您发出的每个请求一起发送,以便后端可以实际验证您是否有权访问该资源。
简而言之,服务器不应该仅仅因为Vue客户端声称是管理员用户就允许管理员访问;服务器应该识别和认证客户端,并且只允许用户被授权的请求。
fhg3lkii2#
Vue Devtools只能在开发模式下访问,所以如果你将应用部署到生产环境,它将不可用。因此,它绝对安全。