相关疑难解决方法(0)

如何在PHP中阻止SQL注入?

如果插入用户输入而不修改SQL查询,则应用程序容易受到SQL注入的攻击,如下例所示:

$unsafe_variable = $_POST['user_input']; 

mysql_query("INSERT INTO `table` (`column`) VALUES ('$unsafe_variable')");
Run Code Online (Sandbox Code Playgroud)

这是因为用户可以输入类似的内容value'); DROP TABLE table;--,查询变为:

INSERT INTO `table` (`column`) VALUES('value'); DROP TABLE table;--')
Run Code Online (Sandbox Code Playgroud)

可以采取哪些措施来防止这种情况发生?

php mysql sql security sql-injection

2776
推荐指数
28
解决办法
166万
查看次数

将1添加到字段中

如何将以下2个查询转换为1个查询

$sql    = "SELECT level FROM skills WHERE id = $id LIMIT 1;";
$result = $db->sql_query($sql);
$level  = (int) $db->sql_fetchfield('level');
$db->sql_freeresult($result);

++$level;

$sql    = "UPDATE skills SET level = $level WHERE id = $id;";
$result = $db->sql_query($sql);
$db->sql_freeresult($result);
Run Code Online (Sandbox Code Playgroud)

我在phpBB mod中使用它,但要点是我抓住了关卡,添加一个然后更新,如果我可以将它作为一个查询,它似乎更容易和更快.

编辑:$id已经被强制为整数,因此这次不需要转义.

php mysql

23
推荐指数
3
解决办法
2万
查看次数

标签 统计

mysql ×2

php ×2

security ×1

sql ×1

sql-injection ×1