代码编写中如何防范SQL注入攻击

来源 :电子乐园·下旬刊 | 被引量 : 0次 | 上传用户:ssss426
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:代码编写需要防范SQL注入,本文将阐述如何防范SQL注入攻击的方法及思路,能够帮助编程人员减少代码的SQL注入攻击。
  关键字:SQL;注入
  一、SQL注入攻击简介
  SQL注入攻击是目前出现最多的一种网络攻击手段,它的出现,不是操作系统本身的问题,而是由于程序员编写程序时出现的BUG,攻击人员通过巧妙的程序输入,就可以绕过本身合法的SQL验证或SQL语言相关条件,最终实现整个数据库的所有数据的过程,也有不少数破坏者将数据贩卖,给社会及个人带来极大的危险和个人隐私信息的暴露。所以,程序员本身应该格外注意SQL注入攻击是如何发生的,在编写代码中如何去防范SQL注入攻击的发生。
  二、SQL注入的攻击的思路
  SQL注入攻击最常见的攻击思路是首先先查找SQL注入的位置,整个程序在哪些位置出现了SQL注入的漏洞,第二步,通过巧妙的编写SQL语句,完成对操作系统及数据库版本类型的判断,以判断当前数据库是什么厂家,数据库所在的操作系统是什么操作系统,以便于我们实现数据导出及其编写符合相应产品的SQL语句。第三步,就是针对不同类型的数据库和操作系统,进行SQL注入攻击。目前针对网站的SQL注入是最多的,也是最简单的一种攻击方式,当程序员在设计代码时,没有充分考虑到对用户输入的字符串进行过滤特殊字符,导致用户输入了经过精心编写的一段SQL语句后,就可以完成数据的窃取。
  三、代码编写中SQL注入防范
  我们在编写代码时要自行分析源代码中的漏洞,主要有两种方法,静态分析和动态分析,静态代码分析是指分析源代码,并不真正执行代码,只是去审核和分析源代码。动态分析是指在代码的运行过程中动态调试的加以分析,找到漏洞。而我们通常结合地使用两种方法用来防范我们的SQL注入攻击。
  从不可信任来源收到的数据是容易受到感染,这些函数通常用于执行或涉及数据库的SQL语句,我们在编写此类函数或代码时应格外注意外来不可信任的数据输入,每种程序语言均有很多种不同形式来构造SQL语句,如果程序员没有对输入源,如表单、cookie、post变量等进行筛查或验证,很有可能就存在SQL注入的漏洞。string id=tbx.text; DataTable dt= SqlHelperCs.Execute(“select * from table where id=’”+id+”’”);以上代码就是用户直接将用户控件的输入值动态的传递给了构造SQL语句的函数,并且该语句没有对不可信输入源进行有效验证就被执行,这很容易引发SQL注入漏洞。通常我们需要跟踪变量的初始化来源,并且我们也要密切观察此变量是否中途被修改,所以我们在代码编写时应格外注意用户输入等易感染SQL注入的敏感区域,并使用一定的技巧来避免漏洞的可行性。想要构造有效的SQL注入,必须首先搞清楚当前数据库注入类型是数字还是字符串类型,当SQL注入攻击为数字时,是不需要加入单引号的,而其他类型则是需要使用单引号的。使用带数字值的SQL语句,例如:select * from table where id=1 使用带字符串值的SQL语句则为select * from table where id=’1’ 从SQL注入攻击时,攻击者非常注意的是使用字符串单引号的闭合问题,所以我们在编写代码时,需要将特殊字符输入给过滤掉,特别是单引号,空格之类的特殊输入符号。我们可以将输入的字符进行正则表达式匹配,匹配特殊字符的正则表达式为((?=[\x21-\x7e]+)[^A-Za-z0-9])x21-\x7e]+) [^A-Za-z0-9])。而针对于数字输入,经常以AND 1=1 或 OR 1=1 的形式存在,所以我们又要对连续输入的字符中不能包含SQL关键字为主要鉴别点,屏蔽掉AND或OR或UNION或SELECT等等SQL关键字。
  1.领域驱动安全设计方法
  领域驱动安全设计方法是一种设计代码的方法,以此设计的方法可以广泛用于典型的SQL注入领域,并且它针对的是一种接收广泛数据输入安全设计方法。大多数的代码编写过程中都會对输入允许使用的字符类型和长度加以限制,但随着程序的不断演化和代码增加,新添加的函数有可能会无意绕过了此类验证,所以我们需要专门为代码编写人员创建简单的模型,用来保证所涉及到此模式时,都能够显示的去表达及检验其有效性。通常我们以用户名和密码举例,用户名需要创建Username类,并且应为public类型,并且在类中,我们对原始输入的用户名变量进行封装,在输入时进行正则表达式的非法输入校验,这样做的好处是无论在代码的任何位置,当我们需要使用到用户名时,都可以使用Username类的对象,由于该类中变量是经过有效性校验的,我们可以认为它是有效性防止了SQL注入的变量,这样做的好处是可以避免重复性的检验逻辑,并且提高了团队安全防范意识,我们只需要对关键输入领域安全做好准入校验即可,这就是领域驱动安全的设计方法,追求公共资源的统一校验。
  2、使用存储过程防范注入
  数据库的存储过程是应用于数据库的配置层来实现的,可以针对特定的数据库用户及相应表,它会限制攻击者拼凑特殊闭合性字符串,因为只能调用存储过程,按要求传入参数,不符合参数数据库控制层将会阻止并报错。存储过程有助于减少潜在SQL注入攻击,我们可以根据数据库不同的版本,使用不同的存储过程语言来编写存储过程,Oracle的PL/SQL,SQL Server的Transact-SQL,以及MySQL的SQL2003标准。
  参考文献:
  [1]李博文.浅谈SQL注入漏洞的检测与防范[J].技术与市场,2020,27(11):102-103.
  [2]刘建亮,乔兴华.SQL注入攻击与防范之研究[J].科学技术创新,2020(08):24-25.
  作者简介:薛凯,男,山东省青岛市,1990年5月,本科,高级系统架构师,软件设计师,青岛市黄岛区人民医院信息中心工作,主要从事软件维护、软件开发
  青岛市黄岛区人民医院 信息中心 266400
其他文献
摘要:作为企业关键组成部分的人力资源管理部门应当发挥其应有的作用,建立健全完善的企业人力资源薪酬激励体系,最大程度激发工作人员的工作热情,才可以使企业健康发展。因此,企业必须采取有效的措施来构建企业人力资源薪酬激励机制,这样不仅可以提高企业日常的经营管理效率,而且能帮助企业实现可持续发展的战略目标。  关键词:企业人力资源;薪酬激励机制;考核制度  1企业人力资源薪酬激励机制构建在企业发展中的重要
期刊
摘要:文化是一个国家和民族的精神力量,是人类优良传统和智慧的结晶。企业文化作为现代社会最重要的企业组织,是影响企业发展和成长的核心因素之一。在社会发展的新形势和新形势下,必须对传统企业文化进行创新,探索企业文化建设的新模式。  关键词:企业文化;创新;企业建设  在整个社会的运行中,国家电网始终发挥着不可替代的作用。企业文化作为国家电网的重要组成部分,对于企业的发展和相关技术人才的培养具有深远的意
期刊
摘要:本文就针对新形势下电力企业薪酬福利管理问题进行分析,并提出一些具体的管理措施,希望能为电力企业员工薪酬福利管理的发展提供有利依据。  关键词:新形势;电力企业;员工福利;管理措施  1电力企业员工薪酬福利管理问题  1.1存在较严重的平均主义  由于受到传统分配制度的影响,电力企业员工薪酬福利管理中存在较严重的平均主义现象,难以发挥员工薪酬福利管理的激励作用,极大影响了企业员工的工作积极性。
期刊
摘要:在我国经济体制改革的进程中,在国家采取优先发展能源等基础产业政策的推动下,电力事业也取得了长足发展。不过,在诸多因素的影响下,电力市场营销问题频出,为此,如何在新形势下尽可能地完善电力市场营销策略,则显得十分必要和重要。  关键词:电力市场 ;营销观念;营销策略  1电力市场营销全新观念研究  现阶段,客户的地位十分重要,所以在新观念之下,必须要保证市场营销工作的针对性,贯彻并落实以人为本这
期刊
摘要:电力企业在提供电力能源服务时,需要顾及众多电力消费者的需求,在电费电价的管理上合乎社会要求,民生期盼。本文围绕电费核算集约化途径及电费电价管理改进策略进行相关论述,以期提供相关参考借鉴。  关键词:集约化;电费核算;电费电价;管理  1电费核算管理现状  各县市工作各自为战只顾当月查找差错不注意异常的防控,造成抄表、计量采集、业扩等业务存在的“病灶”长期得不到根治,日积月累不断流转到核算环节
期刊
摘要:近年来,我国电网建设速度飞快,在提升电力调度的同时,也加大了对科技技术的要求,导致电力调度系统需要处理的问题增多,面临的形势也更加严峻。所以,如何做好新形势下电力调度的安全管理工作是十分重要的。因此,本文从新时期电力调度存在的问题出发,探讨其安全管理措施。  关键词:电力调度;安全管理;管理制度;设备  1新形势下电力调度在安全管理中面临的问题  1.1管理制度的问题  在电力调度中如果提前
期刊
摘要:电力调度系统受到很多内外部环境的影响,因此电网发生事故的风险也无法完全避免,因此调度安全控制在电力系统的运行中发挥的作用也是十分重要的。本文主要围绕电力调度系统的安全问题进行分析,提出相应的防御措施,提升电力调度系统的安全系数。  关键词:电力调度系统;技术安全问题  1电力调度系统中的安全问题  1.1电力系统自身存在的风险  我国目前大型变电站到乡镇变电站都已经形成系统化的全智能电网,因
期刊
摘要:在社会经济快速发展的背景下,社会各界对电力资源的需求也全面增加,电力企业的营销管理问题也逐渐成为人们关注的焦点。因此,电力企业要想在未来的市场经济建设中取得更大的发展和进步,就需要加强电力营销管理的创新,改善经营环境,以充分满足用户对电力的需求。  关键词:市场经济条件下;电力市场营销;创新  一、现阶段电力营销管理存在的问题  近几年来,随着市场经济的快速发展,人们的生活水平逐渐提高,环保
期刊
摘要:在我国供电公司作为大型能源企业的代表,具有一般大型能源企业在发展过程中具有的特点:资金投入量大、技术、人才密集型。在快速发展的现代,人才对于企业来说非常重要。在供电企业中,怎样才可以保证人才发挥最大的作用,为企业的发展提供重大的贡献,是现阶段人力资源管理部门面临的最为严重的问题。人力资源管理主要从薪酬管理和绩效管理两个方面进行。这两种管理方法也是评价人才对企业贡献的标准之一。因此,在供电企业
期刊
摘要:随着电力市场由卖方向买方的转变,电力市场的营销活动成为电网企业体现其产品价值的关键所在,而电力市场的优质服务则成为电网企业的生存根本。为了提高电力企业自身的竞争力,企业管理者必须通过有效的手段,提高工作人员的服务水平,从而提高电力市场营销水平,增加企业的经济效益。基于此,本文对电力市场的现状进行分析,对优质服务在电力市场营销中的作用及其提高营销服务质量的策略进行相关探讨。  关键词:电力市场
期刊