浅谈Web应用程序的安全设计
摘 要:随着网络技术的高速发展,Web应用程序技术取得了迅速的发展,为人们的生活、工作提供了大量的服务。但是,从另一个方面分析,Web技术所带来的安全问题也变得越来越突出。因此,本文首先对Web应用程序的安全现状进行了分析,并提出了Web应用的一些比较实用的安全防护措施。
关键词:Web应用程序;安全;防护;设计
1.前言
随着网络技术的高速发展,Web应用程序技术取得了迅速的发展,为人们的生活、工作提供了大量的服务。但是,从另一个方面分析,Web技术所带来的安全问题也变得越来越突出。而且,通过数据的统计分析可以发现,目前大部分的Web站点安全性都较低,很容易遭受到恶意的攻击。由于重视程度不够的缘故,在网络上的大部分投资都只是应用在各种硬件的配置上,很少有人真正的去关注网络安全,更没有真正去采取措施保证Web应用程序的安全。这不仅给网络黑客以可乘之机,也给整个网络的安全带来了隐患。因此,需要人们在网络信息化大发展的同时,更加关注网络信息的安全,尤其是Web应用服务的安全。这里我们分析了Web应用程序的安全现状,并在此基础上提出了Web应用的一些比较实用的安全防护措施。
应用程序的安全现状分析
漏洞是指各种应用服务在安全方面的弱点,这些弱点就成为了一些恶意用户攻击的目标。正是由于这些漏洞的存在,才使得黑客可以通过各种攻击方式,获取网络用户的私人信息或者破坏其他用户的文件内容。下面我们列举一些容易被作为漏洞的行为。
2.1用户密码设置简单
密码是相当于一把能够进入计算机系统的钥匙。如果被人窃取,那么任何人就都有可能进入这个计算机系统。显然,密码是非常重要的,但是,用户往往对其不太重视,使用生日或者姓名等作为密码。这种形式的密码极易被破解,从而造成网络应用的不安全。
2.2错误的软件配置
软件配置错误极易引起系统受到攻击。例如,如果一个服务被配置的安全级别过低,那么可能很多人都可以很轻易的进出本地系统。
2.3数据传输未加密
基本上多有的WEB应用程序都需要处理用户和服务器之间的信息交流。如果这些交流的信息都是以明文方式传输,那么这些数据就有可能在传输的过程中被窃取和攻击。
2.4缓冲区溢出
缓冲区溢出是指写入缓冲区中的数据超过了其设计之初所能容纳的数据。这可能会造成应用程序以及操作系统的崩溃,使得攻击者可以通过读取错误消息来发现更多的漏洞。
应用程序的安全防护
3.1进行输入验证
合理的输入验证方法是保障Web应用程序安全的一个有效方法,这种方法可以有效预防缓冲区溢出、SQL注入以及其他输入性攻击问题。可以按照如下方法对Web应用程序的输入验证进行增强。
(1)首先假定所有的输入都是恶意攻击行为,除非已知它们无恶意。除此之外,所有的来源不在可信任范围之内的登录,都要进行输入验证。
(2)需要注意的是不要过分依赖客户端的验证。应该同时使用服务器端进行自身验证。
(3)对输入采取相应的限制、净化措施。应用程序设计的开始就要充分了解应用程序的输入内容。通过与潜在恶意输入相比,以提前进行恶意限制。
3.2进行身份验证
身份验证是要确定调用方的身份。可以通过以下做法进行Web应用程序的身份验证:
(1)将站点趋于分成公共和受限区域。其中公共区域可以被任何用户访问,而受限的区域只能被特定用户访问,而且用户需要进行站点身份验证。
(2)锁定最终用户的账户。一旦发现某些账户进行重复登录而且屡次失败,就应当及时对该账户进行禁用。
(3)对密码设定一定的有效期。用户的密码不能长期固定不变,这样容易被恶意破解。所以要进行常规的维护,给每个密码设定一个固定的有效期,一旦超过期限,就需要强制用户修改密码。
(4)最好不要在用户的存储设备中存储账户密码。对于密码的验证问题,可以采用单项验证,使用哈希值进行存储,对于真正的密码不需要存储。这样可以有效减少用户存储数据的威胁。
(5)在网络上最好不要使用纯文本格式进行密码的传送。这样极容易被网络黑客进行窃听。而且被攻击率很高。因此,可以使用数据加密文件进行传输,这样才能保证数据信息的安全。
3.3进行授权
要对不停的操作或者数据访问需求进行授权的确定,这样可以更好的保证数据不被恶意攻击人员接触。如果验证发生错误或者授权安全级别较低,就会造成数据信息的泄露和丢失。因此,要加强对应用程序进行授权的安全防护。
(1)进行多重监听策略。在客户端和服务器端,都可以使用IP安全协议的策略进行数据信息安全的防护,这样可以有效限制服务器之间的不良通信。这样的话,不管用的身份如何,客户端都会根据Web权限设置进行对安全的防护。如果发现客户权限不足,就应该立即禁止其的登录和访问行为。如果将这些防护方法综合起来进行,就可以起到事半功倍的效果,从而制定出更加有效的安全策略。
(2)适当对用户对系统资源的访问进行限制。系统资源包括文件、注册表项、文件夹、事件日志等。可以使用Windows的访问控制列表对用户的访问权限以及执行哪些操作进行一定程度的限制。尤其要对特别注意使用匿名账户的用户,要使用特殊规则对这些用户进行锁定,防止这些匿名账户访问资源或者使用计算机或者网络应用程序。
3.4重点关注重要的敏感数据
网络中存在大量的敏感信息,对于用户的财务或者个人安全都有重要作用,例如信用卡账号、密码、家庭地址或者病例档案信息等用户的私人数据。要对使用这些数据的应用程序采取特殊的步骤进行处理,以保证这些数据的安全保密,并且不允许对这些数据的相应修改。除此之外,对于实现应用程序阶段所使用的机密数据也必须采取特定的措施进行保护。
3.5对网络信息数据采用一定的方法进行加密
要对信息的传递采用一定的加密方法。常用的基本加密方法可以对数据的安全提供更为全面的安全保障。
* 更保密:可以保证数据信息的安全不被泄露。
* 真实性:对于一些用户可能拒绝发送的特定消息采取限制,要求用户必须发送。
* 完整性:可以有效防止数据信息被不明身份人员修改。
* 进行身份验证:可以用来确认消息发送方的身份。
3.6进行审核和记录工作
应该对跨应用层活动进行定期的审核和记录。日志的目的是为了跟踪
监测有可疑迹象的活动行为。这种操作可以及时的发现可能攻击的对象和源头,并解决事后问题的进一步处理工作,即用户拒绝承认其行为的问题。尤其在证明个人相关错误行为的法律程序过程当中,就十分需要使用相应的日志文件作为攻击者犯罪的有利证据。一般情况下,如果审核的生成时间恰好是资源访问的时间,并且使用相同的资源访问例程,则审核是最具权威性的。
4.结论
目前,大部分的Web站点安全性都较低,很容易遭受到恶意的攻击。主要是由于重视程度不够,现在很少有人真正的去关注网络安全,更没有真正去采取措施保证Web应用程序的安全。这不仅给网络黑客以可乘之机,也给整个网络的安全带来了隐患。因此,需要人们在网络信息化大发展的同时,更加关注网络信息的安全,尤其是Web应用服务的安全。所以我们首先要对Web应用程序的安全现状有所了解,并懂得一些Web应用的安全防护措施,这对维护我们自身信息的安全以及整个网络系统的安全都有重要的意义。
参考文献
.计算机安全,2008(4).