我最近看到一个视频,他们在后面使用 node/express 进行反应,以进行基于角色的授权。这样,一旦用户通过身份验证,他的工作角色就会作为响应传递给反应前端,然后将其存储在状态中并用于相应地呈现页面。那么,这种方法有多安全?像普通用户这样的人是否有可能篡改来自服务器的响应并将其修改为“admin”之类的内容。还是有其他更安全的方法。请帮助我,因为我对这些主题还很陌生。
2 回答
3
规则 1 - 永远不要相信来自客户端的任何东西。
传递给客户端的任何信息都纯粹用于显示目的。
后端的每项修改都应在将数据插入/更新到数据库之前或在将其用于预期用户的任何目的之前包含对数据的验证。
用户可以更改角色以查看不同的 UI,但如果用户不是合法用户,则 UI 不应尝试检索不适合该用户的信息,或接受来自该用户的任何输入。
于 2020-12-01T13:07:23.207 回答
2
像普通用户这样的人是否有可能篡改来自服务器的响应并将其修改为“admin”之类的内容
是的他们可以。React 状态只是 JavaScript,作为用户,他们总是可以在浏览器中修改这些状态值。
这种方法有多安全?
此问题取决于您在服务器端的安全性。用户可以随时篡改对服务器的请求。检查请求是否有效是服务器的工作。例如使用 JWT,当请求到达服务器时,服务器需要在执行任何工作之前检查用户是否真的是管理员。
一般来说,在前端保存管理员角色或类似的东西通常是为了数据显示。在向服务器发送请求之前,您始终可以进行一些输入检查,但必须在服务器中验证请求
于 2020-12-01T13:04:15.483 回答