0

我正在使用隐藏形式发送价值。带有提交按钮。

就像是:

<form action="users.php?action=edit" method="POST">
<input type="hidden" name="first_name" value="Josh" size="20" maxlength="19"/>
<input type="submit" name="done" value="Done"/>
</form>

我正在创建的下一个表单中使用这些值。我不知道哪个会更好,这样做还是从数据库中获取数据。另外,哪个更安全?

4

4 回答 4

2

速度是可变的。

更重要的问题是什么更安全:如果您将信息存储在表单上,​​恶意用户可能会更改它。

永远不要相信来自 Web 表单的任何数据 - 始终检查并验证它。

我记得一个可能是杜撰的故事,关于早期的网上商店如何将价格存储在表单的隐藏字段中,并且对销售水平感到高兴,结果发现这些销售的价格大大降低,原因是狡猾的消费者的现场干预。

http://www.ethicalhacker.net/content/view/43/2/

于 2012-10-25T08:57:30.393 回答
0

我猜“乔希”是要编辑的用户,只有登录的“乔希”用户才能做到这一点。如果您毫不犹豫地向用户显示隐藏字段中的数据,您可以使用隐藏字段。

请注意,用户可以篡改表单字段中的值。用户可以在 HTTP 请求中添加/更改的所有内容都需要在您的服务器上进行验证(如果它是一个合理的值,如果用户实际上有权编辑“Josh”等)

在您的示例中,虽然没有真正的理由使用隐藏字段:

<form action="users.php?action=edit&first_name=Josh" method="POST">
<input type="submit" name="done" value="Done"/>
</form>

关于速度:对于少量数据,隐藏字段版本可能会更快,因为您避免了整个数据库往返(连接、事务、断开连接)。PHP 不保留连接池,连接到数据库的成本很高。

于 2012-10-25T09:02:52.153 回答
0

从数据库中获取数据更加安全,因为数据不能被篡改。如果您将它放在隐藏字段中,它将显示可以修改的 php 变量的值。

于 2012-10-25T09:00:43.440 回答
0

我想它首先从数据库中获取数据人们可以操作数据,然后我猜你的数据库是本地主机或在同一个网络中 - 这比通过互联网发送它更快并且安全!

于 2012-10-25T09:05:28.843 回答