首页 > 解决方案 > 生成 Id 的服务器与客户端

问题描述

如果我使用 React/Vue/Angular 之类的东西,或者只是阻止我的页面在提交时使用纯 JS 加载,我应该在前端为我的元素生成 id 还是应该等待服务器以 id 响应?

一个简单的例子是旧的待办事项列表,我添加了一个待办事项,它必须有一个 id,所以当我想删除它时,我可以将 id 发送到服务器。过去,我曾经生成一个 UUID 并将其发送到服务器以供其使用。我的问题是这是否是一种好的做法,还是我应该以不同的方式做?

标签: javascriptnode.jsreactjsvue.jsclient-server

解决方案


如果要将数据存储在服务器中,则永远不要在客户端中创建元素的 ID。您可以添加两次相同的 ID,或者另一个用户可以使用与您相同的 ID,或者使用无效的 ID,或者 - 您明白了。您几乎可以肯定地避免在客户端重复生成 UUID 的 IDS,但在服务器中编辑它们更容易、更安全。考虑到在客户端中,您无法控制客户端向您的后端发送的内容。不管你用 JavaScript 做什么,恶意用户总是可以破解发送到服务器的请求并按照他们想要的方式修改它,所以你可能会以对你的数据库字段来说太长的 ID 结束,或者以无效的值,或者上帝知道还有什么.


推荐阅读