使用此代码是否安全?
$check = mysql_query("SELECT id FROM table WHERE nick='asd'");
$count = mysql_num_rows($check);
我只需要行数。 id是AUTO_INCREMENT
答案 0 :(得分:4)
如果'asd'是一个常数并且与任何(用户)输入无关,那么它是安全的。
否则你应该用bind变量替换它并使用预准备语句或至少正确地转义它。 (但是很容易忘记转义,所以尝试使用绑定变量是一种更好的做法。)
答案 1 :(得分:1)
NO。绝对不是。
首先,阅读MySQLi。我代表着改进。其次,使用准备好的陈述。这可以防止注射。阅读here。
$db = new mysqli("localhost", "DATABASE-NAME", "DATABASE-USER", "DATABASE-PASS");
$check = $db->prepare("SELECT `id` FROM `table` WHERE `nick` = ?");
$check->bind_param('s', $nickVar);
$check->execute();
不要采取简单的方法。保持安全,直到它自然而然。我曾经都是关于快速入侵,快速开始工作,快速写下一些东西,但最后,最好习惯于良好的练习。