大佬教程收集整理的这篇文章主要介绍了php – 如果我使用MySQLi预处理语句,我是否需要转义我的变量?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
$stmt = $con1->prepare("updatE Login SET Session='LoggedOut' where Session=?"); $stmt->bind_param('s',$Session); $stmt->execute(); $stmt->close();
我是否还需要使用MysqLi_real_escape_String()来转义$Session等变量;如下:
$Session = MysqLi_real_escape_String($con1,$_COOKIE['Session']); $stmt = $con1->prepare("updatE Login SET Session='LoggedOut' where Session=?"); $stmt->bind_param('s',$Session); $stmt->execute(); $stmt->close();
根据关于SO的类似问题的this回答:
总之,预处理语句在发送的数据和SQL查询本身之间创建了一个分隔,确保数据不会被误解为SQL查询.但是,攻击者仍然可以将sql作为数据输入,虽然在使用预准备语句时首次存储它时不会执行,但在检索结果时仍必须谨慎.准备好的语句可以保护您在该特定位置的应用程序,但由于sql仍然允许存储在数据库中,因此如果您以后在没有参数化的情况下使用该数据,则您的应用程序是不安全的.
以上是大佬教程为你收集整理的php – 如果我使用MySQLi预处理语句,我是否需要转义我的变量?全部内容,希望文章能够帮你解决php – 如果我使用MySQLi预处理语句,我是否需要转义我的变量?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。