我是PHP新手,我意识到我的数据库连接,使用PHP表单(用户和传递文本输入)是完全不安全的:
这很有效,但不安全:
<?PHP
$link=MysqLi_connect('localhost','xx','xx','xx');
$sql=' SELECT * FROM usuarios
WHERE username="'.$_POST['usuario'].'"
AND pass="'.$_POST['usuario'].'"
';
$rs=MysqLi_query($link,$sql);
MysqLi_close($link);
?>
所以,我读过MysqLi_real_escape_string,并决定尝试一下:
<?PHP
$link=MysqLi_connect('localhost','xx','xx','xx');
$usuario=MysqLi_real_escape_string($link, $_POST["usuario"]);
$clave=MysqLi_real_escape_string($link, $_POST["clave"]);
$sql=' SELECT * FROM usuarios
WHERE username="'.$usuario.'"
AND pass="'.$clave.'"
';
$rs=MysqLi_query($link,$sql);
MysqLi_close($link);
?>
这个对吗?这是如何使用MysqLi_real_escape_string的一个很好的例子吗?
解决方法:
Is this correct?
是.
Is this a good example of how to use MysqLi_real_escape_string?
没有
如果曾经使用过,这个函数必须封装到一些内部处理中,而不必从应用程序代码中直接调用.必须使用占位符来表示查询中的数据:
$sql='SELECT * FROM usuarios WHERE username=? AND pass=?';