首先,什么是sql注入?
用大白话说就是:当一个人在访问你的应用时,需要输入,他的输入是一些特殊的字符,你没有对输入进行过滤处理导致他的输入改变了你的sql语句的功能,实现他自己的目的,通过这种方式他可能能拿到很多权限,从而实施自己的攻击
以上的描述是很不严谨的,如果想深入了解sql注入,访问下面的链接:
http://www.php.net/manual/zh/security.database.sql-injection.php
本文的目的其实不是让大家知道什么是sql注入,而是希望大家从此可以忘掉sql注入。
在实践中,肯定有很多经验被总结出来,避免sql注入,在以前的mysql和mysqli扩展中,我们都需要手动去处理用户输入数据,来避免sql注入,这个时候你必须要非常了解sql注入,只有了解,才能针对具体的注入方式采取有效措施
PDO_Mysql的出现,可以让你从sql注入的斗争中抽身而去,你只需要记住,创建一个pdo_mysql链接实例的时候,设置合适的charset,就再也不必为sql注入揪心了。非常重要的就是字符集的设定一定要正确,否则还是有一些特殊字符能被构造用于sql注入。
mysql:host=localhost;dbname=testdb;charset=utf8
执行sql语句之前prepare
恩,貌似就是这么简单,我们就告别了sql注入,感觉有点虚幻。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。