我有兴趣找到允许客户端识别服务器端数据库中的对象的选项和最佳实践,而客户端不知道该对象的真正主键。
例如,更新人员#3记录的表单:
<form method="POST" action="/people/3/update">
<input type="text" name="first_name"/>
<input type="text" name="last_name"/>
<input type="submit"/>
</form>
我想避免的是客户端明确地知道号码3
,因为它直接指向该用户的数据库记录,我觉得如果更好的话客户端没有服务器端数据的一瞥。
我已经知道了几个选项:
1)在将所有主键发送到客户端之前对其进行加密,并在它们返回时对其进行解密。我想象这有不可忽视的开销。 2)在将每个密钥发送到客户端之前对其进行某种非加密修改,并在服务器端执行反向操作(如添加11然后再次减去11)。虽然这并没有真正隐藏价值,但它几乎没有任何开销。
1)我应该首先担心这个吗?
2)什么被认为是有效的方法?
3)有什么好的资料来源可以咨询进一步阅读吗?
提前感谢您的帮助!