论文部分内容阅读
摘要:ASP技术在网页制作中的广泛使用,使得人们忽视了它的一些安全问题。该文提出了ASP在使用中会遇到的一些安全问题,也给出了解决方案。
关键词:ASP;漏洞;防护措施
中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2009)15-3909-02
ASP Technology to Enable More Secure
WANG Qiu-yi
(Modern Education Technology CenterAnhui University of Finance and Economics,Bengbu 233000 ,China)
Abstract: ASP technology in the production of a wide range of website use, led to the neglect of some of its security problems. In this paper, the ASP will be encountered in the use of a number of security issues, but also gives the solution.
Key words: ASP; Loophole; Protective measures
在互联网高速发展的今天,网页制作已经成为一个新型的课题。从早期的静态网页到后来的动态网页,网页制作的技术已经发展到一个很高的层次,这些动态网页的出现使得WEB页面可以方便地传播动态信息。在目前,比较流行的有ASP、PHP和JSP程序设计语言所编辑的动态页面。从总的方面来说,ASP、PHP和JSP基本上都是把脚本语言嵌入HTML文档中,它们最主要的优点是:ASP学习简单,使用方便;PHP软件免费,运行成本低;JSP多平台支持,转换方便。在目前的大多数的网站建设中用的最多的还是ASP技术,ASP(Active Server Pages)是一种由微软开发的免编译的服务器端脚本环境。它将HTML页面,Scripts语言和动态服务器扩展结合在一起,可以建立动态,交互且高效的WEB服务器应用程序。
1 ASP的特点
使用VBScript、javaScript等简单易懂的脚本语言,结合HTML代码,即可快速地完成网站的应用程序。
无须编译,可以直接解释执行。
使用普通的文本编辑器即可进行页面的编辑与设计。
独立浏览器,用户端只要使用可执行HTML代码的浏览器,即可浏览ASP所设计的网页内容。
ASP能与任何ActiveX Scripting语言相容。
源程序不会外漏,ASP脚本是在服务器上执行,不会被传到客户浏览器,因而可以避免所写的源程序被他人剽窃,也提高了程序的安全性。
面向对象。ActiveX Server Components具有无限可扩充性。
2 ASP的工作原理
1) 用户向浏览器地址栏输入网址,默认页面的扩展名是.asp。
2) 浏览器向服务器发出请求。
3) 服务器引擎开始运行ASP程序。
4) ASP文件按照从上到下的顺序开始处理,执行脚本命令,执行HTML页面内容。
5) 页面信息发送到浏览器。
3 ASP技术在网页中的安全隐患和防护措施
3.1 SQL注入式攻击
SQL注入就是客户端提交特殊的代码,从而收集程序及服务器的信息,获取想得到的资料。由于ASP程序员在编写程序时不规范,代码存在漏洞,动态生成sq1命令时没有对用户输人的数据进行验证而受到攻击。例如,在测试中,输入一个已经存在的用户名:administrator,密码输人“1’or‘1’ =‘1”,单击登录按钮,非法登录成功。
防范措施:
只有用户名和密码完全正确才能通过验证。另外,编写代码时在处理类似留言板、论坛等输人框的ASP程序中,最好屏蔽掉HTML、Javasc印t、vBScriPt语句,并且要对输人的字符进行限制,特别是一些特殊字符,比如单引号、双引号、分号、逗号、冒号、连接号等进行转换或者过滤,同时也应对输人的字符長度进行限制。而且要在客户端进行输人合法性检查,同时要在服务器端程序中进行类似检查。
还有一种方法就是先查询用户名,再进行密码验证,将这一段验证代码
SqlConnection MyConnection=new SqlConnection
(ConnectionString);
Strsql ="Select * from用户帐号where
name=’" strUserName "’and password=’" strPassword "’";
SqlCommand MyCommand=new SqlCommand(strsql,MyConnection);
MyConnection.Open();
SqlDataReader MyReader=MyCommand.ExecuteReader();
if(MyReader.Read())
{
登 录 成 功
}
分成两部分执行,即
Strsql ="Select* from用户帐号where name=’" strUserName "’;
SqlDataReader MyReader=MyCommand.ExecuteReader();
While(MyReader.Read())
{
if ( MyReader["password"]==strpassword)
{
登 录 成 功
}
3.2 木马漏洞
入侵者一般是通过ASP程序上传功能的漏洞进人后台上传ASP木马程序。当木马一旦上传上去就有可能取得网站的管理权限,修改或删除文件、数据库,篡改网站的主页。因此ASP木马的防范也尤为重要。
防范措施 :
1) 建议用户通过ftp来上传、维护网页,尽量不安装ASP的上传程序。
2) 对ASP上传程序的调用一定要进行身份认证,并只允许信任的人使用上传程序。
3) 上传文件时,要限制文件的扩展名。比如:上传图片文件时,设置为只能上传扩展名.jpg或者.gif的文件,拒绝上传扩展名为.asp 或.exe的文件。
4) 到正规网站下载ASP程序,下载后要对其数据库名称和存放路径进行修改,数据库文件名称也要有一定复杂性。
5) 日常要多维护,经常查看在文件夹里有没有不正常的*.asp或*.exe文件,特别是放置上传文件的文件夹内,数据库中有没有陌生的数据表。一旦发现被入侵,立即删除文件。
6) 要经常备份数据库、网页等重要文件,一旦被木马破坏,能及时还原,减少损失。
7) 网站的后台也是非常关键的。不要在页面上作后台的地址链接,这样后台地址不容易被猜解。网站后台的管理账号密码不应过于简单,并且要使用附加码。
3.3 登陆页面被绕过
在程序开发过程中,要编写ASP代码设置权限验证,像一些机密信息或内容信息的网页,是对内部人员或者网站管理人员开放的。在留言板系统中,普通的用户只能发表和查看留言,只有管理员才能删除或修改一些留言,所以在要进入这些页面,都要经过一个身份验证,没有合法身份的用户是不得进入的。但对于安全性不强的系统,用户在知道相关叶面目录的情况下,直接在地址栏中输人URI路径,就可以进人页面。那样的话,用户验证就只成了摆设。
防范措施:
为了避免这类情况发生,应该把后台登录页面与后台管理页面进行绑定,只要通过了后台登录页面的合法身份验证的用户才能进入后台管理页面,其他方式的进入一概是不允许的。程序员在编程时能考虑到这点的话,入侵者就无法绕过用户验证了。
3.4 Access数据库下在漏洞
在采用ASP Access技术建设的网站中,如果有人通过各种方法获得或者猜到数据库的存储路径和文件名,则该数据库就可以被下载到本地。例如:对于校园网新闻数据库,一般命名为news.mdb、xinwen .mdb等。存储路径一般为“URL/database”或放在根目录“URL”下。这样,只要敲人地址:“URL/database/news.mdb”,数据库就可以被下载。
防范措施:
1) 非常规命名法。为Access数据库文件起个复杂的非常规的名字,并把它放在几层目录下。所谓“非常规”,打个比方说,比如有
个数据库要保存的是有關书籍的信息,可不要给它起个“book.mdb”的名字,而要起个非常规的名称,比如faklh945ioagah.mdb,并把它放在如:/hdye92/89hjg/hgdggdkl/的几层目录下。也可以将 Access数据库的文件*.mdb改名为*.asp或*.asa,即使浏览者获知了数据库文件的具体地址,当浏览者试图下载这些*.asp文件时,浏览者将会碰到访问错误,数据库在浏览器以乱码显示,同时在数据库的连接字符串,我们将相应的气mdb改为*.asp或*.asa 也不会影响程序对数据库的正常访问。这样黑客要想通过猜的方式得到你的Access数据库文件就难上加难了。
2) 使用ODBC数据源。在ASP程序设计中,不要把数据库名写在程序中,比如:conn.ConnectionString=”Provider=-Microsoft.Jet.OLEDB.4.0;”
关键词:ASP;漏洞;防护措施
中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2009)15-3909-02
ASP Technology to Enable More Secure
WANG Qiu-yi
(Modern Education Technology CenterAnhui University of Finance and Economics,Bengbu 233000 ,China)
Abstract: ASP technology in the production of a wide range of website use, led to the neglect of some of its security problems. In this paper, the ASP will be encountered in the use of a number of security issues, but also gives the solution.
Key words: ASP; Loophole; Protective measures
在互联网高速发展的今天,网页制作已经成为一个新型的课题。从早期的静态网页到后来的动态网页,网页制作的技术已经发展到一个很高的层次,这些动态网页的出现使得WEB页面可以方便地传播动态信息。在目前,比较流行的有ASP、PHP和JSP程序设计语言所编辑的动态页面。从总的方面来说,ASP、PHP和JSP基本上都是把脚本语言嵌入HTML文档中,它们最主要的优点是:ASP学习简单,使用方便;PHP软件免费,运行成本低;JSP多平台支持,转换方便。在目前的大多数的网站建设中用的最多的还是ASP技术,ASP(Active Server Pages)是一种由微软开发的免编译的服务器端脚本环境。它将HTML页面,Scripts语言和动态服务器扩展结合在一起,可以建立动态,交互且高效的WEB服务器应用程序。
1 ASP的特点
使用VBScript、javaScript等简单易懂的脚本语言,结合HTML代码,即可快速地完成网站的应用程序。
无须编译,可以直接解释执行。
使用普通的文本编辑器即可进行页面的编辑与设计。
独立浏览器,用户端只要使用可执行HTML代码的浏览器,即可浏览ASP所设计的网页内容。
ASP能与任何ActiveX Scripting语言相容。
源程序不会外漏,ASP脚本是在服务器上执行,不会被传到客户浏览器,因而可以避免所写的源程序被他人剽窃,也提高了程序的安全性。
面向对象。ActiveX Server Components具有无限可扩充性。
2 ASP的工作原理
1) 用户向浏览器地址栏输入网址,默认页面的扩展名是.asp。
2) 浏览器向服务器发出请求。
3) 服务器引擎开始运行ASP程序。
4) ASP文件按照从上到下的顺序开始处理,执行脚本命令,执行HTML页面内容。
5) 页面信息发送到浏览器。
3 ASP技术在网页中的安全隐患和防护措施
3.1 SQL注入式攻击
SQL注入就是客户端提交特殊的代码,从而收集程序及服务器的信息,获取想得到的资料。由于ASP程序员在编写程序时不规范,代码存在漏洞,动态生成sq1命令时没有对用户输人的数据进行验证而受到攻击。例如,在测试中,输入一个已经存在的用户名:administrator,密码输人“1’or‘1’ =‘1”,单击登录按钮,非法登录成功。
防范措施:
只有用户名和密码完全正确才能通过验证。另外,编写代码时在处理类似留言板、论坛等输人框的ASP程序中,最好屏蔽掉HTML、Javasc印t、vBScriPt语句,并且要对输人的字符进行限制,特别是一些特殊字符,比如单引号、双引号、分号、逗号、冒号、连接号等进行转换或者过滤,同时也应对输人的字符長度进行限制。而且要在客户端进行输人合法性检查,同时要在服务器端程序中进行类似检查。
还有一种方法就是先查询用户名,再进行密码验证,将这一段验证代码
SqlConnection MyConnection=new SqlConnection
(ConnectionString);
Strsql ="Select * from用户帐号where
name=’" strUserName "’and password=’" strPassword "’";
SqlCommand MyCommand=new SqlCommand(strsql,MyConnection);
MyConnection.Open();
SqlDataReader MyReader=MyCommand.ExecuteReader();
if(MyReader.Read())
{
登 录 成 功
}
分成两部分执行,即
Strsql ="Select* from用户帐号where name=’" strUserName "’;
SqlDataReader MyReader=MyCommand.ExecuteReader();
While(MyReader.Read())
{
if ( MyReader["password"]==strpassword)
{
登 录 成 功
}
3.2 木马漏洞
入侵者一般是通过ASP程序上传功能的漏洞进人后台上传ASP木马程序。当木马一旦上传上去就有可能取得网站的管理权限,修改或删除文件、数据库,篡改网站的主页。因此ASP木马的防范也尤为重要。
防范措施 :
1) 建议用户通过ftp来上传、维护网页,尽量不安装ASP的上传程序。
2) 对ASP上传程序的调用一定要进行身份认证,并只允许信任的人使用上传程序。
3) 上传文件时,要限制文件的扩展名。比如:上传图片文件时,设置为只能上传扩展名.jpg或者.gif的文件,拒绝上传扩展名为.asp 或.exe的文件。
4) 到正规网站下载ASP程序,下载后要对其数据库名称和存放路径进行修改,数据库文件名称也要有一定复杂性。
5) 日常要多维护,经常查看在文件夹里有没有不正常的*.asp或*.exe文件,特别是放置上传文件的文件夹内,数据库中有没有陌生的数据表。一旦发现被入侵,立即删除文件。
6) 要经常备份数据库、网页等重要文件,一旦被木马破坏,能及时还原,减少损失。
7) 网站的后台也是非常关键的。不要在页面上作后台的地址链接,这样后台地址不容易被猜解。网站后台的管理账号密码不应过于简单,并且要使用附加码。
3.3 登陆页面被绕过
在程序开发过程中,要编写ASP代码设置权限验证,像一些机密信息或内容信息的网页,是对内部人员或者网站管理人员开放的。在留言板系统中,普通的用户只能发表和查看留言,只有管理员才能删除或修改一些留言,所以在要进入这些页面,都要经过一个身份验证,没有合法身份的用户是不得进入的。但对于安全性不强的系统,用户在知道相关叶面目录的情况下,直接在地址栏中输人URI路径,就可以进人页面。那样的话,用户验证就只成了摆设。
防范措施:
为了避免这类情况发生,应该把后台登录页面与后台管理页面进行绑定,只要通过了后台登录页面的合法身份验证的用户才能进入后台管理页面,其他方式的进入一概是不允许的。程序员在编程时能考虑到这点的话,入侵者就无法绕过用户验证了。
3.4 Access数据库下在漏洞
在采用ASP Access技术建设的网站中,如果有人通过各种方法获得或者猜到数据库的存储路径和文件名,则该数据库就可以被下载到本地。例如:对于校园网新闻数据库,一般命名为news.mdb、xinwen .mdb等。存储路径一般为“URL/database”或放在根目录“URL”下。这样,只要敲人地址:“URL/database/news.mdb”,数据库就可以被下载。
防范措施:
1) 非常规命名法。为Access数据库文件起个复杂的非常规的名字,并把它放在几层目录下。所谓“非常规”,打个比方说,比如有
个数据库要保存的是有關书籍的信息,可不要给它起个“book.mdb”的名字,而要起个非常规的名称,比如faklh945ioagah.mdb,并把它放在如:/hdye92/89hjg/hgdggdkl/的几层目录下。也可以将 Access数据库的文件*.mdb改名为*.asp或*.asa,即使浏览者获知了数据库文件的具体地址,当浏览者试图下载这些*.asp文件时,浏览者将会碰到访问错误,数据库在浏览器以乱码显示,同时在数据库的连接字符串,我们将相应的气mdb改为*.asp或*.asa 也不会影响程序对数据库的正常访问。这样黑客要想通过猜的方式得到你的Access数据库文件就难上加难了。
2) 使用ODBC数据源。在ASP程序设计中,不要把数据库名写在程序中,比如:conn.ConnectionString=”Provider=-Microsoft.Jet.OLEDB.4.0;”