判断以及防止SQL注入

发表于:2017-4-12 10:04

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:帅气的小雅君    来源:CSDN博客

#
SQL
分享:
  SQL注入是目前黑客最常用的攻击手段,它的原理是利用数据库对特殊标识符的解析强行从页面向后台传入。改变SQL语句结构,达到扩展权限、创建高等级用户、强行修改用户资料等等操作。
  那怎么判断是否被SQL注入了呢?
  通过SQL注入的原理我们知道,判断SQL注入可以通过页面传入的数据, 后台不应该相信从后台传入的任何数据 特别是特殊整型参数和特殊字符参数!
  防止SQL注入其实也很简单:
  1.检查变量数据类型和格式
  只要是固定格式的变量,在SQL语句执行前,应该严格按照固定格式检查,确保变量是我们预想的格式!
  2.过滤特殊符号
  对于无法确定固定格式的变量,一定要进行特殊符号过来或转移处理,一面之星SQL时有歧义。
  当我们上传图片的时候
  enctype=\”multipart/form-data\”
  enctype=”multipart/form-data”
  没有“/“,表单中enctype=”multipart/form-data”的意思,是设置表单的MIME编码。默认情况,这个编码格式是application/x-www-form-urlencoded,不能用于文件上传;只有使用了multipart/form- data,才能完整的传递文件数据,进行下面的操作.
  3.绑定变量,使用预编译语句
  实际上,绑定变量使用预编译语句是预防SQL注入的最佳方法,使用预编译的SQL语句语义不会发生改变。在SQL语句中,变量用问号?表示,黑客即使本事再大,也无法改变SQL语句的格式,从根本上杜绝了SQL注入攻击的发生。
  4.数据库信息加密安全有时候数据库信息泄露了,我们应该对数据库的密码等信息进行加密(MD5等),这样信息泄露,损失也可以在控制在一定范围内。
  使用JSP的时候要注意
  1.不要随意开一生产环境汇总Webserver的错误显示。
  2.永远不要相信来自用户端的变量输入,有固定格式的变量一定要严格检查对应的格式,没有固定格式的变量需要对引号等特殊字符进行必要的过滤转义。
  3.使用预编译绑定变量的SQL语句
  4.做好数据库账号权限管理
  5.严格加密处理用户机密信息
  一个好的程序一定要注意安全性,否则只适合练手。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号