相关疑难解决方法(0)

准备好的语句如何防止SQL注入攻击?

准备语句如何帮助我们防止SQL注入攻击?

维基百科说:

准备好的语句对SQL注入具有弹性,因为稍后使用不同协议传输的参数值无需正确转义.如果原始语句模板不是从外部输入派生的,则不能进行SQL注入.

我看不清楚原因.简单的英语和一些例子中有什么简单的解释?

sql security sql-injection prepared-statement

151
推荐指数
5
解决办法
10万
查看次数

PDO与MYSQLI,准备状态和绑定参数

我有这个问题要清理.我阅读了一些文档和评论,但仍然有些不够清楚.

  • 我知道PDO提供了更多的驱动程序,如果你想改变你的数据库类型肯定是一个加号.
  • 正如另一篇文章中所述,PDO并不提供真实的准备语句,但mysqli这样做会使用MYSQLI更安全
  • 基准测试看起来很相似,(我没有亲自测试,但在网上查看了一些基准测试)
  • 面向对象对我来说不是问题,因为mysqli正在迎头赶上.但是,对程序性mysqli和PDO进行基准测试会很好,因为程序应该稍快一些.

但这是我的问题,使用预处理语句,我们是否必须使用参数绑定我们在语句中使用的数据?好的做法还是要?如果您多次运行相同的查询但是它足以保护查询本身,我理解准备好的语句是良好的性能?或绑定参数是必须的?具体的绑定参数是什么以及它如何保护数据免受sql注入?如果您指出我对上述陈述的任何误解,也将不胜感激.

谢谢

parameters mysqli pdo bind

6
推荐指数
1
解决办法
2690
查看次数