保护表单不被操纵

时间:2012-11-16 22:54:45

标签: php forms

你好亲爱的,你总是帮助我走得更远。

我的表单有问题。

如何在提交后保护用户免受操作?

FORM

<form method="post" action="/selling.php" />
<input type="hidden" name="user" value="{$_SESSION['session_username']}" />
<input type="hidden" name="price" value="$price" />
<input type="hidden" name="nick" value="$nick" />
<input type="hidden" name="class" value="$class" />
<input type="hidden" name="amount" value="$amount" />
<input type="submit" name="reset" class="input_submit" value="Submit" />
</form>";

它是如何运作的?

用户登录我的网站,然后根据他的“$ username”,我从DB(昵称,类)检索他的信息,并根据一些条件我为它创建“$ amount”和“$ price”

一切都自动完成,用户只需点击“提交”按钮即可。

但我发现他可以操纵整个表格并将例如“$ price”更改为0 ......

我该怎么做以及如何做?

1 个答案:

答案 0 :(得分:1)

无论您从哪里派生$amount$price,都会在输出表单之前计算出来。这意味着您也可以将这两个值存储在像

这样的会话中
$_SESSION['amount'] = $amount;
$_SESSION['price'] = $price;

并完全摆脱它们。只要您在尝试访问它之前启动会话,您就可以在selling.php中访问这些会话:

session_start();

通过这一点,所有敏感信息都不会显示在表格/源代码中,但仍然可以在sell.php中找到。

请记住始终在后端进行验证,即php代码,从不在前端。