php – 准备语句保护您的数据库吗?
发布时间:2020-12-13 13:53:15 所属栏目:PHP教程 来源:网络整理
导读:我知道你们中的一些人可能会关闭这个问题,但我的问题来自你和你的答案.我正在阅读SQL注入的过去两小时的问题和答案以及如何保护您的数据库.我看到的大量网页和教程也是如此. 我发现有一半人声称准备语句可以保护你的数据库,另外50人声称它不是. 另一方面,我
我知道你们中的一些人可能会关闭这个问题,但我的问题来自你和你的答案.我正在阅读SQL注入的过去两小时的问题和答案以及如何保护您的数据库.我看到的大量网页和教程也是如此.
我发现有一半人声称准备语句可以保护你的数据库,另外50人声称它不是. 另一方面,我读到mysql_real_escape_string完成这项工作,而其他人则说它不是. 我的问题是谁相信? 另外,这是一个适当的准备声明吗? $stmt = $dbh->prepare("SELECT phpro_user_id,phpro_username,phpro_password FROM phpro_users WHERE phpro_username = :phpro_username AND phpro_password = :phpro_password"); /*** bind the parameters ***/ $stmt->bindParam(':phpro_username',$phpro_username,PDO::PARAM_STR); $stmt->bindParam(':phpro_password',$phpro_password,PDO::PARAM_STR,40); /*** execute the prepared statement ***/ $stmt->execute();
准备好的陈述没有.只要所有不受信任的数据都通过参数传递而不是插入到语句中,绑定参数就会保护语句(而不是整个数据库).当人们使用预准备语句时,他们几乎总是使用绑定参数,因此这两个名称经常混为一谈.
>准备声明 mysql_real_escape_string几乎总能完成这项工作,但由于它为流程添加了额外的步骤,因此更容易出现人为错误. >逃避每个变量>将变量连接到SQL语句中>运行声明 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |