首页 文章

防止php中的sql注入[重复]

提问于
浏览
-1

这个问题在这里已有答案:

如果用户输入是在没有修改的情况下从 SQL query 插入的,那么应用程序就容易受到 SQL injection 的攻击,如下例所示:

$unsafe_variable = $_POST['user_input']; 

mysql_query("INSERT INTO `table` (`column`) VALUES ('$unsafe_variable')");

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

INSERT INTO `table` (`column`) VALUES('value'); DROP TABLE table;--')

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

1 回答

  • 2

    通过简单的Google搜索提供了大量信息,可以指导您正确的方向 . 首先:

    DON'T USE MYSQL_ FUNCTIONS* 这些是deprecated并将生成警告 . 它们甚至不是现代Web开发的远程良好实践 .

    USE A DATABASE LIBRARY INSTEAD 喜欢PDOMySQLi . 有很多教程可以帮助您入门,最重要的是这些库 take care of SQL injection for you . 所以使用它们!

相关问题