SQL是Structured Query Language(结构化查询语言)的缩写。SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言。在使用它时,只需要发出“做什么”的命令,“怎么做”是不用使用者考虑的。SQL功能强大、简单易学、使用方便,已经成为了数据库操作的基础,并且现在几乎所有的数据库均支持SQL。 本篇文章通过SQL和MYSQL的对比,以及SQL注入的原理,以及如何预防SQL注入等方面,详细分析了SQL注入相关知识点,希望可以帮助到一些有需要的人。
1 .什么是sql注入(Sql injection)? Sql注入是一种将sql代码添加到输入参数中,传递到Sql服务器解析并执行的一种攻击手法 2. 怎么产生的? Web开发人员无法保证所有的输入都已经过滤 攻击者利用发送给Sql服务器的输入数据构造可执行的Sql代码 数据库未做相应的安全配置 3.如何寻找sql漏洞? 识别web应用中所有输入点 了解哪些类型的请求会触发异常?(特殊字符”或') 检测服务器响应中的异常 4. 如何进行SQL注入攻击? 数字注入: Select * from tablename where id=1 or 1=1; 字符串注入: Mysql的注释特性: #与--号后面的被注释掉,无论密码输入的是什么,都能正确查询。请点击此处输入图片描述 5. 如何预防sql注入? 严格检查输入格式:is_numeric(var),tp5的validate验证,字符串的注入采用正则看是否在[A-Za-z]之间 转义:addslashes(str)、 mysqli_escape_string()函数进行转义 6.MySQLi的预编译机制 参数化绑定 参数化绑定,防止 SQL 注入的又一道屏障。php MySQLi 和 PDO 均提供这样的功能。比如 MySQLi 可以这样去查询: PDO 的更是方便,比如: 相关推荐:sql注入网站的方法 PHP简单高效防御sql注入的方法分享 PHP防止sql注入的方法讲解 以上就是深入了解SQL注入和预防措施的详细内容,更多请关注php中文网其它相关文章!
学习教程快速掌握从入门到精通的SQL知识。
|