APP下载

浅谈基于ASP开发的网站安全性研究及防范方法

2016-03-13煤炭科学技术研究院有限公司徐丽娜

电子世界 2016年8期
关键词:网站安全

煤炭科学技术研究院有限公司 徐丽娜



浅谈基于ASP开发的网站安全性研究及防范方法

煤炭科学技术研究院有限公司 徐丽娜

【摘要】本文旨在介绍基于ASP开发的企业网站存在的安全问题,从SQL注入、跨站脚本等方面分析可能会出现的问题,并针对这些问题给出必要的防范措施。

【关键词】ASP;网站;安全

1 引言

随着互联网的高速发展,Web技术日新月异,随着微软推出的ASP网页设计语言的广泛使用,很多地方机关、企业、事业单位的网站开发都使用了这种语言,配合Microsoft的桌面数据库Access和网络数据库SQL Server的数据库系统一起使用,极大的提高了开发者的工作效率。就目前国内现状看来,网站使用的脚本语言中,使用ASP+Access或SQLServer的网站仍然占有很大的比例。由于ASP本身存在一些漏洞及数据库的安全问题,如果代码编写过程中忽略程序代码的安全性,就会导致网站在运行中容易被攻击,出现网站无法运行或者数据泄漏等问题。本文以此为例,讨论ASP网站数据库建设过程中存在的安全问题。

2 ASP网站的安全隐患及防范措施

2.1SQL注入

2.1.1SQL注入概述

SQL 注入就是利用现有应用程序,将恶意构造的SQL查询命令注入到网站后台数据库检索引擎中执行从而获得敏感数据甚至执行系统命令的一种攻击方式。SQL 注入是对web应用程序而不是对web数据库或操作系统本身的攻击,是对数据库查询添加非预期SQL命令从而以数据库管理员或开发人员非预期的方式操控数据库的行为。通过这种方式,攻击者就可以得到网站数据库服务器的数据,并能够修改、删除、添加数据,从而破坏网站的正常使用。

SQL 注入攻击是目前网络攻击的主要手段之一, 其安全风险性比其他的漏洞要高处很多, 因为其攻击方式的原因, 目前防火墙无法对SQL注入漏洞进行有效地防范。

2.1.2SQL注入防范方法

只要对客户端上传的内容按字符进行检查,就可以解决SQL注入的问题。同时要遵循对数据库配置的最小权限原则。通常使用的防范方法有:

(1)客户端提交来的查询语句要使用数据库的参数化查询接口,而不能简单的将客户端输入的变量嵌入到查询语句里。

(2)对需要查询的比较特殊的字符("、、<>、&、+、*、;、,、.、()、CR、LF、eval等)进行转义处理,或编码转换。

典型的SQL查询语句为:

Select*from users where username=′admin′and password=′smith′如果分别给username 和password 赋值“admin' or 1=1- - ”和“aaa”。那么, SQL 脚本解释器中的上述语句就会变为:select*from users where username=′admin′or 1=1- - and password=′aaa′[1]。该语句里有两个判断条件, 只要其中一个条件成立查询就会自动执行, 而1=1 是永远成立的, 后面的“- - ”表示注释, 解释为后面的语句是注释语句。因此在处理客户端键入的查询语句的时候,不能在数据库中直接查询,必须过滤掉危险字符。

(3)明确限制参数的数据类型。

(4)根据客户的需求只提供最低限度的数据库操作权限,尽可能降低注入攻击对数据库的危害。

(5)网站的错误信息不要在客户端显示,或者显示自定义的错误信息。

2.2跨脚本攻击

2.2.1跨脚本攻击概述

跨站脚本攻击是指攻击者以正常身份利用Web应用漏洞,攻击者向其提交包含恶意脚本代码的输入,由于该输入未经Web服

务器严格验证,当用户访问这些恶意页面后,浏览器将自动加载并执行这些恶意脚本,完成攻击[2]。因此,跨站脚本攻击是一种间接攻击技术,不直接攻击Web服务器,而是以其为跳板攻击用户。跨站脚本中的“站”是指被利用的Web服务器[3]。

用户是跨脚本攻击的主要受害者,虽然网站及服务器受到的危害不大,但是会间接伤害网站的访问量和安全性,导致网站访问量的减少和用户信任度的损失,因此也需要引起开发人员足够的重视。

2.2.2跨脚本攻击解决方案

(1)对客户端的所有输入都进行严格的过滤,例如"<"、">"、"JavaScript"等特殊字符直接过滤。并且在开发的过程中不断记录和更新这些特殊字符的编码形式,才能最大限度的解决这个问题。

(2)用户输入的数据类型要严格验证其格式、长度、范围和内容等。

(3)服务器端也要增加相应的过滤步骤。

(4)网站数据库的输出值有很多出口,在输出数据的时候也要进行相应的安全检查。

2.3WEB应用默认目录

Web应用程序经常使用的目录名称如:include、admin等,有可能被恶意攻击者猜测到并进行利用,作为攻击网站的入口,从而导致网站产生安全性问题。为解决这个问题,这类目录的名称需要网站开发人员设计不同的命名规则,在目录名称中加上攻击者不容易猜测到的字符或代码,这样就能最大程度上避免目录名称被恶意攻击者猜测成功。

3 结束语

在本文中,列举了3种现在比较常见的微型网站的安全应用漏洞,同时列出了对应的解决方法。ASP语言因为简单易学易掌握,成为广受网站技术开发人员欢迎的开发工具,不过很多人在开发的过程中忽视了网站的安全问题,导致网站正常使用后出现各种安全问题。希望开发人员能重视ASP的安全性问题,尽量提高网站的安全性。

参考文献

[1]陈小兵,张汉煜,骆力明,黄河.SQL注入攻击及其防范检测技术研究[J].计算机工程与应用,2007,43(11):150-152.

[2]CERT Coordination Center CERT. Advisory CA-2000-02 Malicious HTML Tag Embedded in Client Web Requests[EB/OL]. http://www.cert.org/advisories/CA-2000-02.html,2000.

[3]Mike Ter Louw,V.N.Venkatakrishnan.Blueprint:Robust Prevention.

徐丽娜,女,现供职于煤炭科学技术研究院有限公司,主要研究方向:网站开发、信息服务等。

作者简介:

猜你喜欢

网站安全
河洛文化旅游资源外宣网站日译现状调查及对策研究
文管综合实践教学中心网站建设与维护