-1

我已经搜索并添加了一些预防代码,但我需要专家建议我是否正确?

我为 SQL 连接制作了单独的文件,但我对是否应该使用 include、require、include_onces 或任何其他感到困惑?

mysql_connect("localhost", "userr", "pass") or die(mysql_error()) ; 
mysql_select_db("databse") or die(mysql_error()) ;

在这里,我添加了两件事UTF8mysql_real_escape_string

$bad='anyone123';

$var = mysql_real_escape_string($bad);
$q = mysql_query('SET user_id UTF8');
$q = mysql_query("SELECT * FROM fbusers WHERE user_id = '$var'");
$r = mysql_fetch_array($q);

如果我如何防止注射,请给我建议。100% 我不希望我的网站被黑客入侵 :(

谢谢

4

1 回答 1

0

对于需要用户输入的任何查询,您都需要使用准备好的语句。这会分别发送查询和参数,并充当安全层来捕获任何恶意输入。

在 PDO 中:

$stmt = $pdo->prepare("SELECT * FROM fbusers WHERE user_id = :var");

$stmt->execute(array(':var'=>$var));

在 mysqli 中:

$stmt = $dbConnection->prepare('SELECT * FROM fbusers WHERE user_id = ?');
$stmt->bind_param('s', $var);

$stmt->execute();

也许这篇文章会有所帮助。

于 2013-08-11T23:14:32.810 回答