保护POST请求

我有一个expresjs应用程序

如何在发布表单时确保ID。

我有一个隐藏的字段ID的forms:

<input type="text" name="id" id="id" hidden="hidden" value="1"> 

该ID可以很容易地更改为无效的数据发布到我的数据库。

我怎样才能保护它? 我应该哈希吗?

我能想到的唯一方法是使用可逆encryption方法对值进行encryption(因为散列是不可逆的,所以散列将不起作用)。 然后,当您在服务器上收到encryption的ID时,请将其解密以获取该值。

但是,我不会build议这样做,没有必要为了防止某人在回发中更改ID而发生这样的麻烦。 你的forms中可能有其他几十个领域,你怎么可能保证所有这些领域?

我build议您在收到回发数据时进行适当的validation,例如:

如果User A试图编辑他的Profile ID 1234 ,则表单将具有ID 1234的隐藏字段,当用户完成编辑操作并将数据发送回服务器时,validationUser A有权编辑发布Profile ID ,如果他有权这样做,那么他是否将ID更改为除原始值以外的其他值无关紧要。

你可能试图解决一个错误的问题。 所有的POST数据都应该在服务器端检查一致性。