问问题
68 次
3 回答
5
很简单,用户已经从开发人员工具或使用 JavaScript 编辑了他的 DOM。但事实是,这不是用户的错。
是你的!
您不能盲目地相信来自客户的输入,您应该始终验证您所期望的(在这种情况下,是 1 到 24 之间的数字)就是您所得到的。在这种情况下,可以通过以下方式轻松完成:
$input = (int) $input;
if ($input > 0 && $input <= 24) {
始终验证输入。总是。
于 2013-08-24T06:15:44.220 回答
0
至少有两种可能发生的方式:如果您在同一个表单中拥有或拥有另一个具有相同名称的字段,则两者的值都将被提交。此外,如果您曾经在 SELECT 标记上具有 MULTIPLE 属性,那么当时可能已经提交了多个值。(虽然,对于这两个例子,多个值如何连接到同一个数据库值超出了这个答案的范围......)
于 2013-08-24T06:25:26.527 回答
0
如果您问这怎么可能,那么用户很容易从浏览器中更改选择框中的选项。只是打开开发工具并进行编辑的一个案例。
黑客甚至可以在不使用 HTML 表单的情况下使用完全虚构的数据在您的网站上发布信息。
你永远不应该相信来自浏览器的数据是有效的;在保存到数据库或对其进行任何其他操作之前,始终在它到达您的服务器时再次验证它。
于 2013-08-24T06:34:17.183 回答