微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – mysqli_real_escape_string安全吗?

我是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=?';

然后,在处理占位符标记时,可以应用此函数(如果适用),但不能单独应用,而是应用所有格式规则.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐