基于MYSQL的SQL注入问题研究

来源 :科教导刊 | 被引量 : 0次 | 上传用户:huanghuang051
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要本文通过一段JAVA代码引入SQL注入问题,对SQL注入概念和问题作了详细介绍,并给出了解决该问题的方法,最后对如何避免SQL注入问题作了总结。
  关键词MYSQLSQL注入方法
  中图分类号:TP31文献标识码:A
  
  1 引言
  
  Statement用于执行静态 SQL 语句并返回它所生成结果的对象。用Statement来处理SQL语句时,可能会产生SQL注入问题,请看如下代码:
  当我们调用read1(name),且name为数据库中存在的用户名,就能打印出正确的用户信息,反之则显示该用户不存在的信息。但是当我们尝试调用read1( or 1 or )时,就会把数据库中所有用户显示都打印出来,显然这不是我们希望看到的。为什么会出现这种情况呢?我们来分析一下SQL语句:select id, name, money, birthdayfrom user where name=" or 1 or ";其中的where name=" or 1 or "表示只要name不为0就满足条件,所有条件都符合记录,相当于没有任何限制了,这种方式实际上是很不安全的,以上情况就属于SQL注入问题之一。
  
  2 相关概念
  
  所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符暴出的,这类表单特别容易受到SQL注入式攻击.
  当应用程序使用输入内容来构造动态sql语句以访问数据库时,会发生sql注入攻击。如果代码使用存储过程,而这些存储过程作为包含未筛选的用户输入的字符串来传递,也会发生sql注入。sql注入可能导致攻击者使用应用程序登陆在数据库中执行命令。如果应用程序使用特权过高的帐户连接到数据库,这种问题会变得很严重。在某些表单中,用户输入的内容直接用来构造(或者影响)动态sql命令,或者作为存储过程的输入参数,这些表单特别容易受到sql注入的攻击。而许多网站程序在编写时,没有对用户输入的合法性进行判断或者程序中本身的变量处理不当,使应用程序存在安全隐患。这样,用户就可以提交一段数据库查询的代码,根据程序返回的结果,获得一些敏感的信息或者控制整个服务器,于是sql注入就发生了。
  
  3 解决方法
  
  用继承于Statement的PreparedStatement可解决SQL注入的问题,SQL 语句被预编译并存储在 PreparedStatement 对象中,然后可以使用此对象多次高效地执行该语句。下面为改进后的代码:
  由于PreparedStatement处理SQL语句时,它首先对语句中的一些特殊字符进行预处理或者过滤,包括对一些性能进行了优化,所以PreparedStatement能解决SQL注入问题。
  PreperedStatement(从Statement继承扩展而来)相对Statement的优点:
  ①不存在SQL注入的问题。
  ②Statement会使数据库频繁编译SQL,可能造成数据库缓冲区溢出。
  ③数据库和驱动可以对PreperedStatement进行优化(只有在相关联的数据库连接没有关闭的情况下有效)。
  
  4结论
  
  一般情况下,对于没有条件或者条件固定的SQL语句,可以用Statement来处理。但绝大多数情况下,只要带有参数的特别是String类型参数的SQL语句,在处理时一定要用PreparedStatement来处理,这样就可以解决SQL注入问题。
其他文献
基本上,大多数所谓的肿瘤标志物做Screen,临床上都不会有太好的效果。要么很多肿瘤患者没筛查出来,要么正常人也会有很多一部分肿瘤标志物出现升高。嘛原因?嗯,请看图: Basi
一1820年,清仁宗嘉庆帝驾崩,次年,宣宗即位,改年号道光。新朝的首个腊月,在浙江杭州的西子湖畔,一位因受贬斥而失声多年的前朝重臣鲍桂星,忽然收到了一虚一实两件特殊的礼物
公司法人人格否认制度诞生于股东滥用公司的法人资格,损害债权人利益,我国在2005年的中首次确立了该制度,这一制度的适用具有主体、行为和结果等条件限制.
摘要私募股权投资(Private Equity,简称PE),从投资方式角度看,是指通过私募形式对私有企业,即非上市企业进行的权益性投资,在交易实施过程中附带考虑了将来的退出机制,即通过上市、并购或管理层回购等方式,出售持股获利。本文介绍了私募股权投资的特点以及三种投资方式,希望能够勾勒出私募股权投资的基本情况。  关键词私募股权投资方式  中图分类号:F27文献标识码:A    广义的私募股权投资
请下载后查看,本文暂不支持在线获取查看简介。 Please download to view, this article does not support online access to view profile.
期刊
摘要1978年,第五次全国人大提出新闻立法提案后,关于新闻立法的呼声从未停止。时至今日,禁止民间办报,新闻官司增多、记者屡遭殴打和迫害、新闻行业出现有偿新闻等种种不合理现象使当前新闻出版无“法”可依的现状令人担忧。老百姓的知情权,记者的采访权,新闻媒体的舆论监督权,新闻行业怎么规范,从业人员怎么规范,都应该有一个全方位的法律来提示。新闻行业关系百姓切身利益,涉及各个行业,有一部规范的法律,也将惠及
中山医科大学中山眼科中心是国内最大的眼科中心,是世界上20个最大的眼科中心之一.中心拥有许多全国知名的高级眼科人才,可谓群星璀璨.陈家祺教授是其中的佼佼者.从20世纪70
介绍了基于LONWORKS技术的电力线载波通信的集中抄表系统,系统中连接单元-集中器、中继器、采集终端的结构和工作原理,并详细描述了建立事件驱动的网络通信方法。 This paper
请下载后查看,本文暂不支持在线获取查看简介。 Please download to view, this article does not support online access to view profile.
期刊
白血病,俗称血癌,是一类造血干细胞恶性克隆性疾病。克隆性白血病细胞因为增殖失控、分化障碍、凋亡受阻等机制在骨髓和其他造血组织中大量增殖累积,并浸润其他组织和器官,同