Sql注入是什么?(学习php)
如何寻找sql注入漏洞?
如何进行sql注入攻击?
如何预防sql注入?
如何理解sql注入?
Sql注入式一种将sql代码添加到输入参数中,传递到sql服务器解析并执行的一种攻击手法
Sql注入是怎么产生的?
1.Web开发人员无法保证所有的输入都已经过滤
2.攻击者利用发送给sql服务器的输入数据构造可执行的sql代码
3.数据库未作相应的安全配置
如何寻找sql注入漏洞?
借助逻辑推理:识别web应用中所有输入点,get:id信息。Post:标题框,内容框,用户个人ua信息,refer信息,http等。
了解哪些类型的请求会触发异常:对输入点加各种类型字符看异常:get直接改链接、post提交加特殊字符.
检测服务器响应中的异常:看500状态码和302异常产生跳转,或者查不到404错误
如何进行sql注入攻击?(安装mysql扩展)
数字注入:http中的where条件的id查询修改为id=-1 or 1=1(where条件全部为true)
字符串注入:sql中注释符号的利用,目的绕过密码校验(第一种用#,利用在username中,则#后的密码校验被注释掉了,因此可以绕过密码校验。第二种单引号‘—来闭合sql中字符串username的前引号,将后续的字符用—来注释,则可以绕过密码校验)
如何预防sql注入?
- 严格检查输入变量的类型和格式
Id如果不为数字或空,均表示输入违法。
用户名进行校验:用户名限定输入字符不能包括一些特殊字符,如‘,“,--,#等。
- 过滤和转义特殊字符
特殊字符:‘,--,“,#等一些字符。
- 利用mysql的预编译机制