仓酷云

标题: ASP网页编程之用IIS+ASP建网站的平安性剖析 [打印本页]

作者: 山那边是海    时间: 2015-1-16 23:42
标题: ASP网页编程之用IIS+ASP建网站的平安性剖析
我想详细了解ASP整站代码与PSP整站代码有什么优缺点,那个更好,更安全,更用容易维护,和管理。。。iis|平安|平安性|iis|平安|平安性跟着Internet的开展,Web手艺一日千里,人们已不再满意于静态HTML手艺,更多的是请求静态、交互的收集手艺。继通用网关接口(CGI)以后,微软推出的IIS+ASP的办理计划作为一种典范的服务器端网页计划手艺,被普遍使用在网上银行、电子商务、网上查询拜访、网上查询、BBS、搜刮引擎等各类互联网使用中。与此同时,Access数据库作为微软推出的以尺度JET为引擎的桌面型数据库体系,因为具有操纵复杂、界面友爱等特性,具有较年夜的用户群体。今朝,IIS+ASP+Access是中小型Internet网站的首选计划。可是,该办理计划在为我们带来便利的同时,也带来了严格的平安成绩。
1、平安隐患剖析
IIS+ASP+Access办理计划的次要平安隐患来自Access数据库的平安性,其次在于ASP网页计划过程当中的平安认识和措施。
1.数据库大概被下载
在IIS+ASP+Access网站中,假如有人经由过程各类办法取得大概猜到数据库的存储路径和文件名,则该数据库就能够被下载到当地。比方:关于网上书店数据库,一样平常定名为book.mdb、store.mdb等,存储路径通常是“URL/database”或放在根目次“URL/”下,如许,任何人敲上天址:“URL/database/store.mdb”,数据库就能够被下载了。
2.数据库大概被解密
因为Access数据库的加密机制对照复杂,即便设置了暗码,解密也很简单。该数据库体系经由过程将用户输出的暗码与某一流动密钥(比方:Access97为86FBEC375D449CFAC65E28E613)举行“异或”来构成一个加密串,并将其存储在*.mdb文件从地点“&H42”入手下手的地区内。我们能够轻松地体例解密程序,一个几十行的小程序就能够轻松地取得任何Access数据库的暗码。因而,只需数据库被下载,其信息就没有任何平安性可言了。
3.ASP页面的平安性
(1)源代码平安性隐患。因为ASP程序接纳非编译性言语,年夜年夜下降了程序源代码的平安性。假如黑客侵进站点,就能够取得ASP源代码;同时关于租用服务器的用户,因一般服务器出租商的职业品德成绩,也会形成ASP使用程序源代码保守。
(2)程序计划中简单被无视的平安性成绩。ASP代码利用表单完成交互,而响应的内容会反应在扫瞄器的地点栏中,假如不接纳得当的平安措施,只需记下这些内容,就能够绕过考证间接进进某一页面。比方在扫瞄器中敲进“...page.asp?x=1”,便可不经由表单页面间接进进满意“x=1”前提的页面。因而,在考证或注册页面中,必需接纳特别措施来制止此类成绩的发生。
2、进步IIS+ASP网站平安性的办法
1.避免数据库被下载

因为Access数据库加密机制过于复杂,无效地避免数据库被下载,就成了进步ASP+Access办理计划平安性的重中之重。以下两种办法复杂、无效。

(1)十分规定名法。为Access数据库文件起一个庞大的十分规名字,并把它放在几个目次下。比方,关于网上书店的数据库,我们不把它定名为“book.mdb”或“Store.mdb”,而是起个十分规的名字,比方:faq9jl.mdb,再把它放在如./akkt/kj61/acd/av5的几层目次下,如许黑客想经由过程猜的体例失掉Access数据库文件名就很难了。

(2)利用ODBC数据源。在ASP程序计划中,假如有前提,应只管利用ODBC数据源,不要把数据库名写在程序中,不然,数据库名将随ASP源代码的掉密而一同掉密,比方:

DBPath=Server.MapPath(“./akkt/kj61/acd/av5/faq9jl.mdb”)
conn.open“driver={MicrosoftAccessDriver(*.mdb)};dbq=”&DBPath

可见,即便数据库名字起得再奇异,埋没的目次再深,ASP源代码掉密后,也很简单被下载上去。假如利用ODBC数据源,就不会存在如许的成绩了:
conn.open“ODBC-DSN名”

2.对ASP页面举行加密

为无效地避免ASP源代码保守,能够对ASP页面举行加密。我们曾接纳两种办法对ASP页面举行加密。一是利用组件手艺将编程逻辑封装进DLL当中;二是利用微软的ScriptEncoder对ASP页面举行加密。利用组件手艺存在的次要成绩是每段代码均需组件化,操纵对照烦琐,事情量较年夜,而利用Encoder对ASP页面举行加密,操纵复杂、见效优秀。ScriptEncoder的运转程序是SCRENC.EXE,利用办法是:

SCRENC[/f][/xl][/ldefLanguage][/edefExtension]inputfileoutputfile

个中:/s是屏障屏幕输入;/f指定输入文件是不是掩盖同名输出文件;/xl指是不是在.asp文件的顶部增加@Language指令;/ldefLanguag指定缺省的剧本言语;/edefExtension指定待加密文件的扩大名。

3.注册考证
为避免未经注册的用户绕过注册界面间接进进使用体系,我们接纳Session工具举行注册考证。比方,我们制造了上面的注册页面。

计划请求注册乐成后体系启动hrmis.asp?page=1页面。假定,不接纳Session工具举行注册考证,则用户在扫瞄器中敲进“URL/hrmis.asp?page=1”便可绕过注册界面,间接进进体系。

在此,使用Session工具举行注册考证:


〈%

’读取利用者所输出的账号和暗码

UserID=Request(“UserID”)

Password=Request(“Password”)

’反省UserID及Password是不是准确

IfUserID〈〉“hrmis”OrPassword〈〉“password”Then

Response.Write“账号毛病!”

Response.End

EndIf

’将Session工具设置为经由过程考证形态

Session(“Passed”)=True

%〉

进进使用程序后,起首举行考证:

〈%

’假如未经由过程考证,前往Login形态

IfNotSession(“Passed”)Then
Response.Redirect“Login.asp”

EndIf


%〉

经由过程对IIS+ASP+Access网上使用体系平安性的研讨,我们对现有体系举行了改革,收到了较好的效果。</p>只要你想学,就没什么优缺点,上面那位大哥已经把网上的评论说了,但我认为想学哪个都一样,不然它就不可能在当今时代数字艺术方面存活到今天
作者: 老尸    时间: 2015-1-20 11:28
ASP也是这几种脚本语言中最简单易学的开发语言。但ASP也是这几种语言中唯一的一个不能很好支持跨平台的语言。  因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。
作者: 深爱那片海    时间: 2015-1-21 13:41
我就感觉到ASP和一些常用的数据库编程以及软件工程方面的思想是非常重要的。我现在也在尝试自己做网页,这其中就用到了ASP,我想它的作用是可想而知的。
作者: 只想知道    时间: 2015-1-30 19:31
Application:这个存储服务端的数据,如果不清除,会直到web应用程序结束才清除(例如重启站点)
作者: 简单生活    时间: 2015-2-6 15:19
我想问如何掌握学习节奏(先学什么再学什么)最好详细点?
作者: 精灵巫婆    时间: 2015-2-16 20:50
用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。
作者: 飘飘悠悠    时间: 2015-3-5 09:28
跟学别的语言一样,先掌握变量,流程控制语句(就是ifwhileselect)等,函数/过程,数组
作者: 乐观    时间: 2015-3-12 02:48
ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp),它可以看作是VC和Java的混合体吧。
作者: 海妖    时间: 2015-3-19 17:38
在平时的学习过程中要注意现学现用,注重运用,在掌握了一定的基础知识后,我们可以尝试做一些网页,也许在开始的时候我们可能会遇到很多问题,比如说如何很好的构建基本框架。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2