ASP编程:避免Access数据库被下载
强大的可扩展性。ASP具有强大的扩展性,可以实现与多种网络、硬件设备的连接:通过专用的通讯线路远程接入企业;通过远程拨号服务器为远程拨号客户提供服务;通过WAP为移动电话互联网客户服务。access|数据|数据库|下载数据库在网站的中心,统统的SQL侵进都是冲着数据库来的。一旦网站的数据库被人下载那就算你的数据库是MD5加密,仍是能够被人暴力破解出来。用户的材料丧失,是对本人也是对用户的一种危险。
那怎样避免数据库被下载呢。
上面是我从网上摘的一篇文章。
-------------------------------------------------------------------------------------------
避免数据库被下载的几个办法
媒介:良多静态站点大批使用了数据库,数据库天经地义成了一个站点的中心文件。一旦数据库被人下载,极有大概被歹意人士损坏网站。或
者夺取材料。其实痛心啊。有甚么办法能够避免数据库被人下载呢?
上面供应的的办法分离合用利用假造主机空间的用户和有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/123456.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把持权的伴侣,不合适购置假造主机用户(除非办理员已设置了)
。这个办法我以为是今朝
最好的。只需修正一处,全部站点的数据库都能够避免被下载。不必修正代码即便表露方针地点也能够避免下载,
如、2设置:
此主题相干图片以下:
我们在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代码自己的平安,不然仍然是有大概被人下载大概修正数据库的!
-------------------------------------------------------------------------------------------
团体以为除第7种办法大概会有效外,其他的都是狗屁。但第7种办法对购置假造主机空间的用户有效。那怎样才干无效避免数据库被下载呢?
第一种办法:数据库定名法。
数据库名字写的再庞大,都多是没用的,由于数据库路径大概被表露。一旦被人在地点栏用不法的一些字符表露了数据库路径。你也就挂了。数据库后缀改成asa,asp或在后面在#也都是不成行的,我试了,都是能够用网际慢车下载的。以是我总结了我的履历,一样平常办法是如许的。
修正数据库毗连页conn.asp,在内里翻开毗连的中央写上onerrorresumenext.此句是避免数据库暴库。然后数据库名字改成global.asa,但不要放在网站的根目次。如许你的数据库就不会被不法下载了。
第二种办法:ASP堕落法。
翻开你的数据库,在数据库里新建某一表,内里的字段称号<%nodownload%>数据范例文本型,然后在数据里添上<%dsfsfsfsdf%>,内里任意只需不是能够剖析的ASP语句就能够。服务器会把ASP后缀的文件当作ASP文件剖析,但一旦内里呈现不法的ASP语句,就是以没法剖析的ASP语句,下载时就会显现第几行ASP语句堕落,就没法被下载了。
第三种办法:COPY法。
把数据库改成1.asp先,新建一个文本1.txt在内里写上
<%response.redirect"err.htm"%>就是重定向到err.htm页面。再做一个err.htm页面,代码以下:
<html>
<head></head><body>哈哈,数据库遭到回护了。</body></html>
然后在DOS下实行以下命令:copy1.asp/b+1.txt/a2.asp
意义就是文件兼并拷贝,1.asp以二进制体例,1.txt以ASCII体例拷贝,分解新的数据库2.asp如今你即便被暴库他人在扫瞄器或flashget的想下载你的数据库也只能下载到err.htm文件了。
一点鄙见。
一点鄙见。
</p>因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。还无法完全实现一些企业级的功能:完全的集群、负载均横。 我想问如何掌握学习节奏(先学什么再学什么)最好详细点? 多看多学多思。多看一些关于ASP的书籍,一方面可以扩展知识面一方面可以鉴借别人是如何掌握、运用ASP的;多学善于关注别人,向同学老师多多学习,不论知识的大小;多思则是要将学到的知识灵活运用。 跟学别的语言一样,先掌握变量,流程控制语句(就是ifwhileselect)等,函数/过程,数组 不能只是将它停留在纸上谈兵的程度上。 ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象,这就明显产生以下几个问题: 从事这个行业,那么你可以学ASP语言,简单快速上手,熟练dreamweav排版,写asp代码,熟练photoshop处理图片,打好基础就行了 我可以结合自己的经验大致给你说一说,希望对你有所帮助,少走些弯路。 Session:这个存储跟客户端会话过程的数据,默认20分钟失效
页:
[1]