我正在构建一个通过 AJAX 做很多事情的应用程序,其中很多都必须接受 userId、documentid、photoid 等。
这些 ID 的最佳实践是什么,它们应该被加密(甚至在被放入 html 页面之前?),还是只是按原样发送它们?
我正在构建一个通过 AJAX 做很多事情的应用程序,其中很多都必须接受 userId、documentid、photoid 等。
这些 ID 的最佳实践是什么,它们应该被加密(甚至在被放入 html 页面之前?),还是只是按原样发送它们?
这取决于您对 ID 的处理方式。我们正在服务器上构建一个无状态的应用程序,因此我们将 ID 作为请求的一部分发送,以便检索实体、应用必要的业务逻辑并将其持久化。在这种情况下,我们肯定需要加密 ID 以防止不安全的直接对象引用。
还有其他选项,例如,您可以在对该实体应用任何更改之前对服务器上的实体应用授权。这当然假设您具有身份验证功能。在我们的例子中,我们不进行身份验证,因此这种授权无论如何都不起作用。
只是对此的更新,我们不需要在客户端上未加密的 ID,因此它是加密它并在第一个响应中发送的服务器。发出包括加密 ID 的后续请求。
如果您真的想隐藏某些行的 id(来自数据库?),您可以简单地异步加密它们并将它们设置为 cookie。这样,您在执行 ajax 请求时就不必关心它们,因为它们无论如何都是可用的。
如果您想进行一些选择并作为表单提交的结果发送它们,那么没有 cookie 的相同加密方法可以工作。
但老实说,我几乎看不到任何加密数据库 id 的理由。