浅谈WEB编程中脚本的漏洞与防范策略
2015-11-20孙永蓬
孙永蓬
(山东电力建设第一工程公司,山东济南 250131)
浅谈WEB编程中脚本的漏洞与防范策略
孙永蓬
(山东电力建设第一工程公司,山东济南 250131)
现如今,在计算机信息技术快速发展的过程中,网络安全逐渐成为计算机用户与WEB程序员共同面对的一道难题。在借助信息技术的过程中,不乏侵犯者可以对多领域侵袭,引发互联网安全等多项问题。作为一名WEB程序员,在编程脚本运行的过程中需要对各项漏洞进行检测,并采取相应的防范措施,保证WEB编程脚本的安全。本文通过实例对WEB编程中存在的漏洞进行分析,并根据实际情况采取防范措施。
WEB编程 脚本漏洞 防范策略
1 引言
网络信息技术的快速发展,促进了互联网信息技术的广泛应用。但是在互联网应用的过程中,有一个问题成为其中影响最大的问题,即网络安全问题。网络安全问题的出现,不仅仅影响用户的使用效果,还会给营造和谐的网络环境造成负面影响。在信息技术快速发展的过程中,如果网络安全不能获得有效的保证,将会给人们带来潜在的经济损失。作为网络中的一种编程,WEB编程脚本中存在的漏洞问题已经逐渐一起人们的广泛关注。人们在使用网络的过程中,脚本运行是最为常见的,如果不能客观准确地看待脚本中的漏洞,将会直接影响用户使用互联网的质量,影响信息技术的快速发展。
2 WEB编程脚本的概述
脚本在网络中的应用,随处可见,较为常见的主要有A S P、PHP、ASPX以及JSP等脚本语言,各类脚本语言常见于新闻发布系统、电子商务系统以及BBS系统中。程序员在设计WEB程序的时候,重点放在程序编程方面,并未予以脚本漏洞过多的关注,进而给脚本漏洞的产生提供有力的条件[1]。根据脚本语言编程的情况可以这么说,对脚本漏洞的注意,避免黑客的侵袭。但是在脚本的定义方面,人们具有一定的疑惑,人们在使用网络的过程中并不清楚脚本与H T M L机编程语言的有何不同。从本质上来说,脚本其实就是HTML与Pascal、C++、Java、VB、C #等相关编程语言之间的一种语言。在脚本运行的过程中,操作系统联合脚本引擎以及脚本语言共同组合而成的一种工作方式。通常情况下,脚本语言并不是可以直接编译成可执行文件的,HTML在变成语言中属于一种解释性语言。从实际应用的过程中就了解到,脚本语言与编程语言的最大区别就在于编程语言的语法和规则更严格、更复杂。在实际应用脚本语言的过程中,就要保证脚本语言在服务器上正常的运行,需要在服务器端安装脚本引擎,例如可以在ASP上安装IIS,JSP上安装JDK与RESIN,ASPX上安装IIS与NET和FRAME等,脚本引擎需要为脚本主机提供环境,并对脚本程序中德脚本命令进行解释。在对命令解释完后,脚本引擎就会在将执行结果一HTML的语言格式发送给客户端。但是客户端的浏览器是可以变量的形式,进而为脚本程序提供数据与指令。在实施的具体过程,将表单行使想WEB服务器发送变量,WEB服务器收到数据后就会将数据以某种形式储存起来,随后就会调用浏览器制定脚本程序来处理变量,在跳用脚本程序的时候,WEB服务器根据脚本程序的扩展名来启动相应的脚本引擎解释脚本运行的程序[2]。
3 脚本漏洞实例分析
通过前文的分析就可以知道,客户端的浏览器会根据变量或者是命令的想脚本程序提交与之相应的数据和指令,而这就是所谓的编写脚本程序。但是在编写脚本程序的时候应当避免出现脚本程序处理数据和指令出现漏洞与缺陷。
3.1 弱字符过滤
在WEB编程实施的过程中,为保证编程的准确性,需要对表单的各项数据进行处理,但是在此时处理的过程中应当特别注意,如果出现处理不当的现象,将会出现较多难以解决的问题。在提交数据的时候需要应用Javascript技术,但是过滤技术在在应用的时候并没有将这些问题作为关注的对象。如,用户在表单中应用Javascript技术,但是并没有对其中的代码采取过滤技术,就有可能会造成用户浏览表单死机的现象:<javascript> for(int i=1;i=1;) window. open("a.html","_self",""); </javascript>。但是用户使用表单内的数据库,而数据库里面的数据结果没有进行过滤,将有可能出现较为严重的漏洞情况。针对此,将JSP作为例子,在管理员登陆页面的时候就会出现这么一种情形:
这样的程序代码粗略看过去根本就没什么漏洞,但是实际上并不是这样的,用户在登录也每年的时候name与passwor的文本框中都输入"'or' '1'='1",提交到服务器,上面的sql语句就会变成:select * from pinfo where name=''or '1'='1' and psw='' or'1'='1'从这就可以显然看出执行后显然rs.eof为真,用户在江adim登录标装置为true,这样攻击者就会以管理员的身份登录进admin.jsp页面,而用户在登以管理员的省份服务器后,就可能会向服务器传木马程序,进而就会造成服务器系统管理员的权限。就从下面的例子简单的来看代码过滤的Java代码片断:
3.2 不可忽视身份认证
现如今,黑客软件到处泛滥,现如今在在网络快速畅通的时候,将用户使用的密码破解并不是一件难事。现如今有一款比较有名的WEB密码破解的软件,名为溯雪。可以使用暴力破解网络上的WEB表单的密码。这样操作的原理非常简单,和可使用密码字典里面的生成密码文件,随后不简短的想服务器提交文字典表单的数据[3]。在此过程中,如果服务器返回,则就表示为ID和密码,也就成功地将用户密码破解。当前大部分的网站就存在这样的脚本漏洞,但是针对
……
……不同的脚本语言,在技术方面会面临不同的问题。在预防攻击Web表单来讲,验证码通常是一个常见和有效的措施。基于此,在对一些public区域的页面来说,就没有安全措施,就可能会遭受到暴力破解。通常情况,用户在登录的时候会获得一个随机的验证码,用户填写验证码后,就能够确保用户是通过web的页面来进行正常登入[4]。但是针对非法的途径的登录者,这个验证码通常是不存在的。但是虽然有这个验证码,攻击者一样可以截获登录Web页面,进而搜索到验证码,这样验证码的的保护措施就没有意义。面对此种情况,可以通过验证信息作为图像的信息显示在Web上,这样再不阻碍合法用户登录的时候,非法登录人员就不会通过html搜索到验证信息,采用这样的方式就能够保证用户新鲜全,也就保证了验证信息的安全和正常的运行操作。如在登录验证码的Java程序中,调用方法就是在 WEB 程序中添加:<img src="http://...../getImg";>原理,在servlet中随机生成一个4位数字1000-9999 然后把这数字写入session,输出一个图片,上面写有这四个数字,在服务器端根据用户输入的数字和,session中的值比较。
4 结语
总而言之,WEB编程脚本在实施的过程中会存在多项漏洞,而本文也仅是对常见的几种漏洞进行论述,而针对漏洞的防范措施也并非仅仅是文中列举的几项,在面对漏洞不同的情况下,防范措施也就不同。
[1]解季萍,凌永发.基于Web的远程教学资源数据库连接访问机制研究[J].云南师范大学学报(自然科学版),2011,7(10):56-57.
[2]刘双虎.基于Web的网络考试系统的设计与实现[J].计算机与现代化,2012,8(10):78.
[3]刘庆红.基于Web的综合教务管理信息系统的分析与设计[J].吉林省经济管理干部学院学报,2013,4(15):87.
[4]段雪丽,杨恒.基于Web的数据挖掘方法的研究及实现[J].邢台职业技术学院学报,2014,6(10):89.