|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
大家可以自己去看一看.可以说看得想呕吐.以前有次下了个动网来看.里面连基本内置函数的保护措施(函数没防御性)都没有.难怪经常补这个补那个了.可能现在.NET版会好点吧access|asp+|平安|平安隐患<Pstyle="TEXT-INDENT:2em">跟着Internet的开展,Web手艺一日千里。继通用网关接口(CGI)以后,“ASP”作为一种典范的服务器端网页计划手艺,被普遍地使用在网上银行、电子商务、搜刮引擎等各类互联网使用中。同时Access数据库作为微软推出的以尺度JET为引擎的桌面型数据库体系,因为具有操纵复杂、界面友爱等特性,具有较年夜的用户群体。因而ASP+Access成为很多中小型网上使用体系的首选计划。但ASP+Access办理计划在为我们带来便利的同时,也带来了不容无视的平安成绩。<Pstyle="TEXT-INDENT:2em">ASP+Access的平安隐患ASP+Access办理计划的次要平安隐患来自Access数据库的平安性,其次在于ASP网页计划过程当中的平安毛病。<Pstyle="TEXT-INDENT:2em">1、Access数据库的存储隐患<Pstyle="TEXT-INDENT:2em">在ASP+Access使用体系中,假如取得大概猜到Access数据库的存储路径和数据库名,则该数据库就能够被下载到当地。比方:关于网上书店的Access数据库,人们一样平常定名为book.mdb、store.mdb等,而存储的路径通常是“URL/database”或爽性放在根目次(“URL/”)下。如许,只需在扫瞄器地点栏中敲上天址:“URL/database/store.mdb”,就能够容易地把store.mdb下载到当地的呆板中。<Pstyle="TEXT-INDENT:2em">2、Access数据库的解密隐患<Pstyle="TEXT-INDENT:2em">因为Access数据库的加密机制十分复杂,以是即便数据库设置了暗码,解密也很简单。该数据库体系经由过程将用户输出的暗码与某一流动密钥举行异或来构成一个加密串,并将其存储在*.mdb文件中从地点“&H42”入手下手的地区内。因为异或操纵的特性是“经由两次异或就恢回复值”,因而,用这一密钥与*.mdb文件中的加密串举行第二次异或操纵,就能够轻松地失掉Access数据库的暗码。基于这类道理,能够很简单地体例出解密程序。<Pstyle="TEXT-INDENT:2em">因而可知,不管是不是设置了数据库暗码,只需数据库被下载,其信息就没有任何平安性可言了。<Pstyle="TEXT-INDENT:2em">3、源代码的平安隐患<Pstyle="TEXT-INDENT:2em">因为ASP程序接纳的长短编译性言语,这年夜年夜下降了程序源代码的平安性。任何人只需进进站点,就能够取得源代码,从而形成ASP使用程序源代码的保守。<Pstyle="TEXT-INDENT:2em">4、程序计划中的平安隐患<Pstyle="TEXT-INDENT:2em">ASP代码使用表单(form)完成与用户交互的功效,而响应的内容会反应在扫瞄器的地点栏中,假如不接纳得当的平安措施,只需记下这些内容,就能够绕过考证间接进进某一页面。比方在扫瞄器中敲进“……page.asp?x=1”,便可不经由表单页面间接进进满意“x=1”前提的页面。因而,在计划考证或注册页面时,必需接纳特别措施来制止此类成绩的产生。<Pstyle="TEXT-INDENT:2em">进步数据库的平安性因为Access数据库加密机制过于复杂,因而,怎样无效地避免Access数据库被下载,就成了进步ASP+Access办理计划平安性的重中之重。<Pstyle="TEXT-INDENT:2em">1、十分规定名法<Pstyle="TEXT-INDENT:2em">避免数据库被找到的烦琐办法是为Access数据库文件起一个庞大的十分规名字,并把它寄存在多层目次下。比方,关于网上书店的数据库文件,不要复杂地定名为“book.mdb”或“store.mdb”,而是要起个十分规的名字,比方:faq19jhsvzbal.mdb,再把它放在如./akkjj16t/kjhgb661/acd/avccx55之类的深层目次下。如许,关于一些经由过程猜的体例失掉Access数据库文件名的不法会见办法起到了无效的制止感化。<Pstyle="TEXT-INDENT:2em">2、利用ODBC数据源<Pstyle="TEXT-INDENT:2em">在ASP程序计划中,应只管利用ODBC数据源,不要把数据库名间接写在程序中,不然,数据库名将随ASP源代码的掉密而一同掉密。比方:<Pstyle="TEXT-INDENT:2em">- DBPath=Server.MapPath(“./akkjj16t/kjhgb661/acd/avccx55/faq19jhsvzbal.mdb”)conn.Open“driver={MicrosoftAccessDriver(*.mdb)};dbq=”&DBPath
复制代码 可见,即便数据库名字起得再奇异,埋没的目次再深,ASP源代码掉密后,数据库也很简单被下载上去。假如利用ODBC数据源,就不会存在如许的成绩了:conn.open
“ODBC-DSN名”<Pstyle="TEXT-INDENT:2em">对ASP页面举行加密为无效地避免ASP源代码保守,能够对ASP页面举行加密。一样平常有两种办法对ASP页面举行加密。一种是利用组件手艺将编程逻辑封装进DLL当中;另外一种是利用微软的ScriptEncoder对ASP页面举行加密。笔者以为,利用组件手艺存在的次要成绩是每段代码均需组件化,操纵对照啰嗦,事情量较年夜;而利用ScriptEncoder对ASP页面举行加密,操纵复杂、见效优秀。<Pstyle="TEXT-INDENT:2em">ScriptEncoder办法具有很多长处:<Pstyle="TEXT-INDENT:2em">1.HTML仍具有很好的可编纂性。ScriptEncoder只加密在HTML页面中嵌进的ASP代码,其他部分仍坚持稳定,这就使得我们仍旧可使用FrontPage或Dreamweaver等经常使用网页编纂工具对HTML部分举行修正、完美,只是不克不及对ASP加密部分举行修正,不然将招致文件生效。<Pstyle="TEXT-INDENT:2em">2.操纵复杂。只需把握几个命令行参数便可。ScriptEncoder的运转程序是screnc.exe,其利用办法以下:<Pstyle="TEXT-INDENT:2em">- screnc[/s][/f][/xl][/ldefLanguage][/edefExtension]inputfileoutputfile
复制代码 <Pstyle="TEXT-INDENT:2em">个中的参数寄义以下:<Pstyle="TEXT-INDENT:2em">s:屏障屏幕输入;<Pstyle="TEXT-INDENT:2em">f:指定输入文件是不是掩盖同名输出文件;<Pstyle="TEXT-INDENT:2em">xl:是不是在.asp文件的顶部增加@Language指令;<Pstyle="TEXT-INDENT:2em">l:defLanguag指定缺省的剧本言语;<Pstyle="TEXT-INDENT:2em">e:defExtension指定待加密文件的扩大名。<Pstyle="TEXT-INDENT:2em">3.能够批量加密文件。利用ScriptEncoder能够对以后目次中的一切的ASP文件举行加密,并把加密后的文件一致输入到响应的目次中。<Pstyle="TEXT-INDENT:2em">4.ScriptEncoder是收费软件。该加密软件能够从微软网站下载。<Pstyle="TEXT-INDENT:2em">使用Session工具举行注册考证,为避免未经注册的用户绕过注册界面间接进进使用体系,能够接纳Session工具举行注册考证。Session工具最年夜的长处是能够把某用户的信息保存上去,让后续的网页读取。比方,要计划如所示的注册页面。<Pstyle="TEXT-INDENT:2em">计划请求用户注册乐成后体系启动hrmis.asp?page=1页面。假如不接纳Session工具举行注册考证,则用户在扫瞄器中敲进“URL/hrmis.asp?page=1”便可绕过注册界面,间接进进体系。使用Session工具能够无效制止这一情形的产生。相干的程序代码以下:<Pstyle="TEXT-INDENT:2em">- <%读取用户输出的账号和暗码UserID=Request(“UserID”)Password=Request(“Password”)反省UserID及Password是不是准确(实践程序大概会对照庞大)IfUserID“hrmis”OrPassword“password”ThenResponse.Write“账号毛病!”Response.EndEndIf将Session工具设置为经由过程考证形态Session(“Passed”)=True%>进进使用程序后,起首举行考证:<%假如未经由过程考证,前往Login形态IfNotSession(“Passed”)ThenResponse.Redirect“login.htm”EndIf%>
复制代码 写软件都是想的时间比写的时间要长的.如果反过来了就得看看是什么原因了.另外大家可以回去问问公司里的小MM.(一般企业里,跟你们交付软件接触得最多的是她们) |
|