保护POST请求

时间:2014-12-26 13:55:32

标签: node.js security express

我有一个expresjs应用程序

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

我在表单中有一个隐藏的字段ID:

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

可以轻松更改id以将无效数据POST到我的数据库。

我该如何保护它?我应该哈希吗?

2 个答案:

答案 0 :(得分:2)

我能想到的唯一方法是使用可逆加密方法对值进行加密(哈希因为不可逆转而无法工作)。然后,当您在服务器上收到加密的ID时,将其解密以获取值。

但是,我不建议这样做,只是为了防止有人在回发时更改ID,这没有任何麻烦。您的表单中可能还有其他几十个字段,您如何才能确保所有字段的安全?

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

  

如果User A正在尝试编辑他的Profile ID 1234,则当用户完成编辑操作并将数据发回服务器时,表单将隐藏ID 1234字段,验证User A是否有权编辑已发布的Profile ID,如果他有权这样做,那么将ID更改为原始值以外的其他内容并不重要。

答案 1 :(得分:1)

您可能正在尝试解决错误的问题。应在服务器端检查所有POST数据的一致性。