假设订购应用程序,用户“Ben”将能够通过发出
列出特定订单/顺序/ 1
现在..在做之前我已经验证了“Ben”(用户名/密码auth)并将用户名作为cookie发送(用sha1校验和签名)。
在每个http请求中,我收到cookie,告诉我“Bent”仍然经过身份验证,但谁可以阻止他发布
/顺序/ 23
其中id = 23的订单不属于“Ben”。
所以我想我应该写一些逻辑来确保订单23实际上属于“Ben”......对于这种情况,这是最佳实践或模式吗?
我应该使用单独的“功能主键”,而不是串行主键ID吗?
答案 0 :(得分:0)
我没有看到任何合理的自然主键用于订购。为了减少可发现性,你可以使用UUID(很小的机会偶然发现/命令/ 4886ed80-dd71-11e0-9572-0800200c9a66)...
但是默默无闻是安全。即使我无法猜测您的订单的UUID,我也可以嗅探您的流量,如果安全性仅通过模糊的URL提供,我将能够通过订单资源做任何我想做的事。
这应该表明在这种情况下你不能跳过身份验证。