ASP网页设计八种办法避免数据库被下载
对于中小型web应用来说,php有很强的竞争力,linux+apache+mysql+php(lamp)的组合几乎可以胜任绝大多数网站的解决方案,对于大型应用来讲,对于系统架构要求更高,需要有成熟的框架支持,jsp的struts是个不错的框架,国内介绍它的资料也非常多,应用逐渐广泛起来。asp就不用说了,数据|数据库|下载 上面供应的的办法分离合用利用假造主机空间的用户和有IIS把持权的用户!一:购置假造主机空间的,合适没有IIS把持权
1:发扬你的设想力修正数据库文件名
这个是最基础的。我想如今也没有几连数据库文件名都懒得改的人吧?至于改成甚么,你本人看着办,最少要包管文件名庞大,不成推测性。固然这个时分你的数据库地点目次是不克不及开放目次扫瞄权限的!
2:数据库名后缀改成ASA、ASP等
这个传闻很盛行,不外我测试了很多多少次,发明其实不幻想,假如真正要起到避免下载的感化,要举行一些2进制字段增加等设置,---一句话,繁而庞大(假如你的数据库有良多的话,这个办法其实不是很好)
3:数据库名前加“#”
只必要把数据库文件前名加上#、然后修正数据库毗连文件(如conn.asp)中的数据库地点。道理是下载的时分只能辨认#号前名的部分,关于前面的主动往失落,好比你要下载:http://www.pcdigest.com/date/#123.mdb(假定存在的话)。不管是IE仍是FLASHGET等下到的都是http://www.pcdigest.com/date/index.htm(index.asp、default.jsp等你在IIS设置的首页文档)
别的在数据库文件名中保存一些空格也起到相似感化,因为HTTP协定对地点剖析的特别性,空格会被编码为"%",如http://www.pcdigest.com/date/123;456.mdb,下载的时http://www.pcdigest.com/date/123%456.mdb。而我们的目次就基本没有123%456.mdb这个文件,以是下载也是有效的如许的修正后,即便你表露了数据库地点,一样平常情形下他人也是没法下载!
4:加密数据库
用ACCESS将你的数据库以独有体例翻开后,在工具-平安-设置数据库暗码,加密后要修正数据库毗连页,如:
conn.open"driver={microsoftaccessdriver(*.mdb)};uid=admin;pwd=数据库暗码;dbq=数据库路径"
如许修正后,数据库即便被人下载了,他人也没法翻开(条件是你的数据库毗连页中的暗码没有被保守)
但值得注重的是,因为Access数据库的加密机制对照复杂,即便设置了暗码,解密也很简单。该数据库体系经由过程将用户输出的暗码与某一流动密钥举行“异或”来构成一个加密串,并将其存储在*.mdb文件从地点“&H42”入手下手的地区内。以是一个好的程序员能够轻松制造一个几十行的小程序就能够轻松地取得任何Access数据库的暗码。因而,只需数据库被下载,其信息平安仍然是个未知数。
二:有主机把持权(固然假造空间的设置在这里仍然能够用)
5:数据库放在WEB目次外
如你的WEB目次是e:webroot,能够把数据库放到e:data这个文件夹里,在e:webroot里的数据库毗连页中修正数据库毗连地点为:"../data/数据库名"的情势,如许数据库能够一般挪用,可是没法下载的,由于它不在WEB目次里!这个办法一样平常也不合适购置假造空间的用户。
6:利用ODBC数据源
在ASP等程序计划中,假如有前提,应只管利用ODBC数据源,不要把数据库名写在程序中,不然,数据库名将随ASP源代码的掉密而一同掉密,比方:DBPath=Server.MapPath(“../123/abc/asfadf.mdb”)
conn.open“driver={MicrosoftAccessDriver(*.mdb)};dbq=”&DBPath
可见,即便数据库名字起得再奇异,埋没的目次再深,ASP源代码掉密后,也很简单被下载上去。假如利用ODBC数据源,就不会存在如许的成绩了:conn.open“ODBC-DSN名”,不外如许是对照烦的,目次挪动的话又要从头设置数据源了,更便利的办法请看第7,8法!
7:增加数据库名的如MDB的扩大映照
这个办法就是经由过程修正IIS设置来完成,合适有IIS把持权的伴侣,不合适购置假造主机用户(除非办理员已设置了)。这个办法我以为是今朝最好的。只需修正一处,全部站点的数据库都能够避免被下载。不必修正代码即便表露方针地点也能够避免下载,如图设置:
我们在IIS属性---主目次---设置---映照---使用程序扩大那边增加.mdb文件的使用剖析。注重这里的选择的DLL(或EXE等)仿佛也不是恣意的,选择不妥,这个MDB文件仍是能够被下载的,注重最好不要选择选择asp.dll等。你能够本人多测试下
如许修正后下载数据库如:http://192.168.1.5/HaoBbs/data/dvbbs6.mdb。就呈现(404或500等毛病)
8:利用.net的优胜性
动网的木鸟就写过一个防不法下载文件的“WBAL防盗链工具”。详细能够上岸http://www.9seek.com/WBAL/;
不外谁人只完成了避免非当地下载的,没有起到真实的防下载数据库的功效。不外这个办法已跟5法差未几能够经由过程修正.NET文件,完成当地也不克不及下载!
这几个办法中,只要第7和8个是一致性改的,一次修正设置后,全部站点的数据库都能够避免下载,其他几个就要分离修正数据库名和毗连文件,对照贫苦,不外关于假造主机的伴侣也只能如许了!
实在第6个办法应当是第5个办法的扩大,能够完成特别的功效,但关于不撑持.net的主机大概怕设置贫苦的话,仍是间接用第5个办法了,并且默许情形下第6个办法,仍然能够经由过程复制毗连到同主机的论坛或留言本宣布,然后就能够点击下载了(由于如许的援用页是来自同主机的)
这几个办法各有是非,请本人选择性地利用。这些办法也不是相对的平安,还必要网站办理员平常注重一些体系的平安,和写ASP/ASP.NET/JSP代码自己的平安,不然仍然是有大概被人下载大概修正数据库的!
帮助用户快速实现各种应用服务,ASP商有整合各方面资源的能力,可在短期内为用户提供所需的解决方案。例如,典型的ERP安装,如果要在客户端安装的话需要半年到二年的时间,但是美国的一些ASP商如USI和CORIO能在90—120天内提供ERP应用方案。 ASP主要是用好六个对象,其实最主要的是用好其中两个:response和request,就可以随心所欲地控制网页变换和响应用户动作了。 Application:这个存储服务端的数据,如果不清除,会直到web应用程序结束才清除(例如重启站点) ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象,这就明显产生以下几个问题: 学习ASP其实应该上升到如何学习程序设计这种境界,其实学习程序设计又是接受一种编程思想。比如ASP如何学习,你也许在以前的学习中碰到过。以下我仔细给你说几点: 以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。 代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。 我想问如何掌握学习节奏(先学什么再学什么)最好详细点? 运用经典的例子。并且自己可以用他来实现一些简单的系统。如果可以对他进行进一步的修改,找出你觉得可以提高性能的地方,加上自己的设计,那就更上一个层次了,也就会真正地感到有所收获。
页:
[1]