1

在我的 Web 应用程序中,用户可以通过产品页面对产品进行评分。他还可以在浏览器中打开多个标签。

让他在每个标签上评价不同产品的最佳做法是什么?

  • 我的第一个想法是将产品 ID 放入会话中:这是个坏主意,因为所有选项卡都共享同一个会话,并且无法知道哪个选项卡处于活动状态(也许有可能?)。
  • 我的第二个想法是在页面中放置一个包含产品 id 的隐藏字段。这是我暂时保留的解决方案。但是恶意用户可以通过 firebug 或其他工具更改 id。

所以我想知道,有没有更好的方法?

4

2 回答 2

0

我假设您的意思是您想强迫用户查看/评价不同的产品,而不是多次查看相同的产品。

很简单,执行应该在服务器端完成。如果发现用户已经对一个 id 进行了评分,则其他评分请求应返回错误消息(可能是 400 范围内的某些 http 状态)。

您可以对 id 和 session 感兴趣,但用户始终可以进行 session 回放。同样,在最基本的层面上,您需要服务器端检查。

没有它,一个无辜的用户可能会不小心点击提交两次,你就会遇到同样的问题。有多个选项卡的事实与此无关。

于 2013-05-15T08:33:05.753 回答
-1

如果您不希望用户使用 firebug 破坏产品 id,您可以使用 megasecret 哈希作为产品 id,用户无法伪造

于 2013-05-15T00:10:52.883 回答