【发布时间】:2017-11-09 08:07:44
【问题描述】:
我有一种情况,我必须将电话号码添加到数据库中。
如果我输入类似的数字:868150705 它可以进入数据库
如果我输入这样的内容:3706150705 它进入数据库,值为2147483647
通过这个输入,我将值从表单中取出
<input type="text" class="demoInputBox" maxlength="20" name="telefonas" value="<?php if(isset($info['tel_nr'])) echo $info['tel_nr']; ?>">
通过这个查询,我将它放入数据库(我有$username)
$telnr = $_POST['telefonas'];
$db_handle = new mysqli("localhost", "root", "xxx", "Database");
$query = "UPDATE table SET tel_nr = '$telnr' WHERE username = '$username'";
$result = $db_handle->query($query);
我的字段 tel_nr 具有以下格式:
tel_nr int(20)
你能帮我用这个奇怪的魔法吗?顺便说一句,我知道这段代码不安全,但该项目目前还没有上线。只是测试一下。
【问题讨论】:
-
电话号码不能是整数,试试varchar。
-
您可以使用此代码进行 SQL 注入
-
这是int的极限
-
1.使用准备好的语句。 2. 不要引用数字。 3. 不要将
int数据类型用于电话号码。 4. 代码不活跃和“仅用于测试”不是放松将变量注入 SQL 的坏习惯的有效借口。 5. 见编号。 1 和 4。 -
检查 int 限制 stackoverflow.com/questions/5634104/…