SQL注入
sql注入
Web应用程序没有仔细的过滤用户输入的数据,攻击者构建恶意的sql语句插入到web应用程序之中,通过执行正常的sql语句而执行攻击者所要执行的语句,进而入侵服务系统。
Sql注入的方式可以分成两种
一、平台层注入:不安全的数据库配置和数据库漏洞所致
二、代码层注入:web应用程序未对用户输入的非法数据进行仔细的过滤
Sql注入防护
- 永远不信任用户的输入:对用户输入的数据进行校验,正则表达式、限制长度、对单引号和双引号进行转换
- 永远不使用动态拼接sql,使用参数化的sql、直接使用存储过程进行数据数据查询存取
- 不使用管理权限的数据库连接,为每个应用使用单独权限的数据库连接
- 不把机密信息直接存放:加密或hash掉密码和敏感的信息
- 对应用的异常信息应该给出尽可能少的提示,如必要,使用自定义的错误提示