防止SQL注入

来源:互联网 发布:淘宝客服打字要求 编辑:程序博客网 时间:2024/06/06 09:18

SQL注入的原理:

1、SQL Injection:就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。

2、具体来说,它是利用现有应用程序,将(恶意)的SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。

SQL注入的总体思路:
1.寻找到SQL注入的位置

2.判断服务器类型和后台数据库类型

3.针对不通的服务器和数据库特点进行SQL注入攻击

防止SQL注入的原则:

1.永远不要信任用户的输入,要对用户的输入进行校验,可以通过正则表达式,或限制长度,对单引号和双”-“进行转换等。

2.永远不要使用动态拼装SQL,可以使用参数化的SQL或者直接使用存储过程进行数据查询存取。

3.永远不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接。

4.不要把机密信息明文存放,请加密或者hash掉密码和敏感的信息。

5.应用的异常信息应该给出尽可能少的提示,最好使用自定义的错误信息对原始错误信息进行包装,把异常信息存放在独立的表中。

SQL注入的解决方案:
1、校验(前端校验+后台校验)
2、信息加密
3、自定义sql对象
4、使用预编译API(PreparedStatedment)
5、使用动态传参的SQL形式
6、权限控制
7、数量控制

GitChat分享
如何成为一个程序员面霸

微信号:woliveintheworld
这里写图片描述

本文参考:
1、http://blog.csdn.net/zhangyongqiang123/article/details/52768730
2、http://blog.csdn.net/stilling2006/article/details/8526458
3、http://blog.csdn.net/zhlu880516/article/details/2647831

原创粉丝点击