浅谈从技术层面提高Web应用系统的安全性
时间:2018-08-21 11:25:01 来源:雾女风情文摘 本文已影响 人
由于B/S架构的兼容性和开放性,以及Web访问对用户端的低成本需求,Web应用系统被大量部署和采用,因此,Web应用系统安全隐患的识别、检测与防范十分重要,需要从技术层面进行分析,并结合运维实践,提出安全技术措施。
一、Web访问机理概述
Web在网页设计中称为网页,表现为三种形式,即超文本(Hypertext)、超媒体(Hypermedia)、超文本传输协议(HTTP)等。用户的Web访问具有不确定性,其浏览顺序和内容完全由用户自己决定,用户通过填写FORM向服务器提交获得动态信息的请求、服务器根据用户请求返回结果信息。
用户在浏览器上输入URL(Uniform Resource Locator统一资源定位符),域名系统进行解析后确定IP地址,向在IP地址映射的服务器发送一个HTTP请求。在通常情况下HTML文本、图片和该网页的一切其他文件会被逐一推送回用户端,浏览器生成用户所看到的“网页”。
由于B/S架构和Web访问对用户端的配置需求和维护成本极低,越来越多的应用系统采用此种方式进行部署,成为Web应用系统。
二、Web应用系统面临安全威胁
Web应用系统面临的安全威胁主要表现在非授权访问、伪用户登录、破坏数据完整性等方面。它们主要利用以下途径:应用软件系统自身的漏洞、应用软件系统的安全体系缺陷、合法用户的安全意识薄弱以及安全管理制度缺失。安全威胁分为人为威胁和自然威胁,人为威胁都是有目的的恶意攻击,人为威胁分为主动性攻击和被动性攻击两大类。
(一)主动性攻击
主动攻击是指攻击者未经授权和许可,截获或篡改系统管理权限、拒绝或中止某些用户对系统的合法访问行为。这方面攻击往往是对数据通道中正在传输的数据单元进行更改、删除、延迟、拷贝重发或插入、合成或伪造等各种恶意处理行为,并以更改报文流、拒绝报文服务、伪造连结初始化等形式达到攻击目的。主动攻击通常易于探测但却难于防范。
(二)被动性攻击
被动攻击是指攻击者通过监听网络上传输的信息流、截获信息内容的行为。这类攻击主要是为了获得信息流长度、传输频率等技术性要素,同时观察和解析数据单元包含的信息(如用户数据、协议控制信息),但不纂改或破坏数据单元内容。攻击者通过这种看似“安全”行为来了解和熟悉正在进行的通信详情,以便达到用其他方法窃取或破坏应用系统和数据资源的攻击目的。因此,相对主动性攻击而言,信息发送者和接收者发现被动攻击是困难的。通常情况下,通过对用户信息进行加密可以避免被动攻击。
由此可见,Web应用系统可能受到的攻击和攻击形式是多种多样的,而且往往是多种攻击同时存在。如何有效防范非法攻击、提高应用系统安全性是一项复杂的任务,需要通过多种安全服务措施和健全管理机制来实现。
三、如何有效地提高Web应用系统的安全性
为了保证应用系统的安全运行,保护计算机硬件、软件和系统数据不被攻击、破坏、更改或泄漏,需要从技术方面采用以下安全措施。
(一)应用防火墙技术
防火墙技术是建立在现代通信网络技术和信息安全技术基础上的网络应用安全技术,可应用在企事业单位内部专用网络,以及内部网络与外部公用网络互联环境条件下,尤其是以接入Internet网络使用最为广泛。
防火墙是指设置在不同网络(如可信任的企业内部网和不可信的外部公共网)或网络安全域之间的一系列硬件和软件的组合,是不同网络或网络安全域之间信息的唯一出入口,它能根据用户的安全政策(允许、拒绝、监测)控制出入网络的信息流,且有较强的抗攻击能力。防火墙能够提供信息安全服务,在逻辑上,防火墙既是一个分离器、限制器,又是一个分析器,能够有效地监控内部网和外部公用网络的信息交互活动,以保证内部网络的安全。
1. 企业网络级防火墙,用来防止整个内部安全网络检测外部的非法入侵,包括分组过滤和授权服务器。分组过滤负责检查所有流入内部网络的信息,拒绝所有不符合内部网络预定安全策略的数据,授权服务器则检查系统用户的登录是否合法。
2. 企业应用级防火墙,从应用程序入手对访问接入进行控制。通常使用应用网关或代理服务器来区分各种应用,如只允许某类用户访问外部网络,但阻止FTP应用的通过。
(二)增强用户管理的安全性
Web应用系统企事业单位内部多个单位及部门的用户同时登录和使用,因此在系統安全性设计上,可采用角色管理和用户身份验证的安全策略。
1. 角色管理
角色管理将应用系统中不同模块权限和对象权限建立映射关系而形成集合,即角色。通过对系统功能模块的划分,不同角色对不同模块具有不同的访问控制权限,从而限制了无关用户对特定功能模块的访问。
2. 系统用户身份验证
身份验证技术通过登录用户向应用系统出示自己身份证明、系统核查用户身份证明的有效性来判断和确认通信双方的真实有效身份。应用系统依靠Internet信息服务(IIS)的身份验证技术和Windows NT文件系统的访问控制。访问请求通过网络客户进入IIS,IIS可以选择使用基本的、简要的或集成的Windows 身份验证技术对客户进行身份验证。如果验证通过。那么IIS将根据验证后的结构生成新的对ASP.NET程序的访问,从而简化了系统设计中安全验证的工作量。如图1。
(三)增强ASP.NET程序的安全性
Web应用系统在程序设计过程中,采取以下措施来提高安全性。
1. 防止SQL注入攻击。在编写代码时,要禁止用户输入非法、危险和内定义的字符,如单引号(’或’)、or、and、*、<、>、空格等,同时在客户端和服务器端都要对用户输入的信息进行验证;同时,在编写程序中要尽量使用存储过程技术。使用存储过程不仅可以防止某些类型的SQL注入式攻击,还可以提高SQL语句的执行速度;在程序出现异常时,程序会自动跳转到固定页面,而不是将错误信息显示给用户,防止代码被截获。