文本内容:
第章注入攻击与防御5SQL
一、请阐述注入攻击流程?SQL发现注入点一数据库类型判断一表结构判断一获取数据一获取账号一上传一提权
二、如何防范注入攻击?SOL
1.对前台传入参数按照数据类型进行严格匹配(如查看描述数据类型的变量字符串中是否存在字母)
2.对于单一变量,如果有必要,应过滤或替换输入数据中的空格3,将一个单引号替换成两个连续的单引号(“”)
4.限制输入数据的有效字符种类,排除对数据操作有特殊意义的字符(如
5.限制表单或查询字符串输入的长度
6.用存储过程来执行所有的查询
7.检查提取数据的查询所返回的记录数量如果程序只要求返回一个记录,但实际返回的记录却超过一行,那就作为错误处理
8.将用户登录名称、密码等数据加密保存加密用户输入的数据,然后将它与数据库中保存的数据进行比较,这相当于对用户输入的数据进行了杀毒处理,用户输入的数据不再对数据库有任何特殊的意义,也就阻止了攻击者注入SOL命令
三、什么是参数化语句?有什么作用?SOL参数化SOL语句是指管理员在设计与数据库连接并访问数据时,在需要填入数据的地方,使用参数,用@表示参数在使用参数化查询的情况下,数据库服务器不会将参数的内容视为SOL指的一部分来处理,而是在数据库完成SOL指令的编译后,才套用参数运行,即使参数中含有恶意指令由于已经编译完成,也不会被数据库执行,因此,可在一定程度上避免SOL注入攻击。