1.数据库层防御目标
1.SQL注入的本质原因并不是数据库层的问题 2.数据库层防御的目标是辅助性的,预防SQL注入在数据层交互提权,防止SQL注入成功后权限和数据泄露进一步扩大#### 2.SQL权限的最小化原则 1.程序连接的权限分配以最小化为原则,能省就别大方 2.如大多数据程序连接都是以select,insert,update和delete权限,那么就只给这些权限。这样,对于读取系统层文件所需要的FILE权限没有,那么与系统层交互提权的路径就堵上了,使得SQL注入无所作为。#### 3.数据库层设计规范化要求 1.这个DBA专业的SQL设计审查的要求 2.如何设计尽量保持高性能,同时也要预防SQL猜测出错的可能性 3.数据库架构设计考虑性能与安全的权衡,通常在保障性能的前提下去考虑安全性的折中 如 用户名的类型: varchar(20) 安全与性能的折中 varchar(5) 偏向性能,结果性能与安全不兼得