Lea*_*ive 2 javascript reactjs
我目前正在使用 ReactJs 16 构建一个示例社交网络应用程序。作为我的应用程序的一部分,我允许用户登录和添加帖子。用户也可以添加好友。
每个用户都有自己的个人资料页面。在他自己的个人资料页面上,登录的用户可以看到他自己的帖子(他也可以编辑/删除自己的帖子)。
用户还可以查看他/她朋友的个人资料页面。但是,在朋友的个人资料页面上,登录用户只能看到帖子,不能编辑/删除朋友的帖子。
我实现此行为的方法是检查登录用户 ID 是否与帖子创建者的 ID 相同。只有当 id 匹配时,我才会向用户显示帖子上的编辑/删除选项。我创建了一个Profile在用户单击时呈现的组件Profile Page。该组件被重用于显示登录用户和朋友的个人资料页面。
我想知道是否有更好的选择来实现上述行为?我对我实现的方式不满意的原因是因为我在前端(即客户端代码)上进行了上述 id 相等性检查,并且它很容易被用户篡改。我知道通过使用丑化,我将能够使我的代码难以进行逆向工程,但对于任何确定的人来说,这并非不可能。
因此,我很想知道是否有更强大和安全的方法来实现这种行为。
用户可以修改客户端代码这一事实并不重要,因为服务器端应该围绕“不信任客户端”进行设计。
即使最终用户无法看到或修改 JS,他们仍然可以修改发送到服务器的网络请求(例如,将删除请求中的帖子 ID 更改为他们朋友的)。
您的服务器应该防止用户修改或删除他们不应该修改或删除的内容,例如其他用户的帖子,并且它应该向前端返回一个错误,通知用户他们不被允许执行请求的操作。
这是实现它的最安全的方法,因为它确保用户不能做他们不应该做的事情,即使他们修改了 UI。
| 归档时间: |
|
| 查看次数: |
334 次 |
| 最近记录: |