安全评级表

时间:2014-11-07 13:52:30

标签: php

我有一个已购买商品的列表,就像在易趣或任何其他允许用户反馈的网站上一样,我希望用户发送反馈。但我不确定如何确保一切。

以下是一个简单的例子:

<?php
    if(isset($_POST['like'])) {
      //this is where i need the item id. But how do I make sure that users don't mess with the form and change the item id?
    }
?>

<ul>

  <li id="1">
    Item title
    <form action="" method="post"><button type="submit" name="like">Like</button></form>
  </li>

  <li id="2">
    Another title
    <form action="" method="post"><button type="submit" name="like">Like</button></form>
  </li>

</ul>

即使我使用jQuery来获取li id,有人仍然可以编辑id并投票给其他一些标题。

我还想添加一个隐藏的输入,但这也是可编辑的。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

  

但是如何确保用户不会弄乱表单并更改商品ID?

你不是。他们可以更改ID。

假设这是真的并且它在您的控制范围之外,并且下一个逻辑步骤变为:验证服务器端代码中的操作

允许用户使用他们想要的任何ID发布表单。当然,您可以在JavaScript或隐藏的表单字段中将该ID预填充到您期望的ID 中。不要强迫用户输入ID或类似的任何东西。但只需使用您通常用于此表单的任何内容。

然后,在服务器端代码中,处理表单帖子时,验证登录用户授权以提交/修改该ID的数据。例如,检查用户是否实际购买了他们正在审核的产品。但是,您希望在逻辑上验证用户是否可以执行他们正在执行的操作,在接收表单发布时在服务器端代码中执行验证,而不是在生成表单时发布。

如果用户未经授权(他们更改了ID),请按照您的喜好处理。错误页面,警告消息,忽略它,它取决于您。