SQL注入是指web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的查询语句的结尾添加额外的SQL语句,在管理员不知情的情况下实现非法操作,以此来欺骗数据库服务器执行非授权的任意查询,从而进一步获取相应的数据信息。
SQL注入攻击:在 post/get web表单、输入域名或页面请求的查询字符串中插入SQL命令,最终使web服务器执行恶意命令的过程。
SQL注入的检测方式目前主要有两类,第一:动态检测,即在系统运行时,使用动态检测攻击对系统进行扫描,依据扫描结果判断是否存在SQL注入漏洞。第二:静态检测,又称静态代码扫描,对代码特征进行分析判断。
SQL注入防范措施:
-
对用户进行分级管理,严格控制用户的权限。
-
程序员在书写SQL语句时,禁止将变量直接写入到SQL语句,必须通过设置参数来传递变量。
-
对用户输入进行检查,对于单引号、双引号、冒号等字符进行转换或者过滤,确保数据输入的安全性。
-
客户端和系统端进行多层次验证防护。
-
漏洞扫描工具,及时发现系统存在的安全漏洞。
-
数据库对数据进行类型检查和长度验证。
-
数据库信息加密。