你好亲爱的,你总是帮助我走得更远。
我的表单有问题。
如何在提交后保护用户免受操作?
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 ......
我该怎么做以及如何做?
答案 0 :(得分:1)
无论您从哪里派生$amount
和$price
,都会在输出表单之前计算出来。这意味着您也可以将这两个值存储在像
$_SESSION['amount'] = $amount;
$_SESSION['price'] = $price;
并完全摆脱它们。只要您在尝试访问它之前启动会话,您就可以在selling.php中访问这些会话:
session_start();
通过这一点,所有敏感信息都不会显示在表格/源代码中,但仍然可以在sell.php中找到。
请记住始终在后端进行验证,即php代码,从不在前端。