对于预编译防止sql注入的总结

预编译实际上是简单的文本替换。也就是说带有占位符的sql语句,是事先在数据库进行编译的,最后把参数传给sql语句(参数化查询),来执行sql语句,前台用户输入的参数会被当作是sql的参数,进而执行sql语句

而直接编译执行sql语句是直接把sql语句连带参数一起到数据库中编译执行。即连同参数也编译执行了。当使用了预编译后,sql注入的语句会被当作参数,而不是sql语句处理,也就解决了sql的命令注入安全问题

正常情况下,用户的输入是作为参数值的,而在sql注入中,用户的输入是作为sql指令的一部分,会被数据库进行编译/解释执行。

你可能感兴趣的:(总结笔记,sql,mysql)