虚拟主机ASP/Access的安全对策深入分析
程序员文章站
2023-12-24 17:29:57
...
1.尽量少使用Server.mappath()来取得数据库的地址,而使用绝对路径E:\wwwroot\skjdlkfjsld.mdb。最好使用Server.mappath()取得地址后直接写在文件里面。 2.尽量使用复杂的文件命slkgjopi6lf09eodknvlwoieu9thlvkcs.mdb之类的 3.加#号在文件名的前面#slkgjopi6
1.尽量少使用Server.mappath()来取得数据库的地址,而使用绝对路径E:\wwwroot\skjdlkfjsld.mdb。最好使用Server.mappath()取得地址后直接写在文件里面。2.尽量使用复杂的文件命slkgjopi6lf09eodknvlwoieu9thlvkcs.mdb之类的
3.加#号在文件名的前面#slkgjopi6lf09eodknvlwoieu9thlvkcs.mdb,#在HTTP协议中表示结束.比如http://www.wc.com/#slkgjopi6lf09eodknvlwoieu9thlvkcs.mdb就会变成http://www.wc.com/但是有一个致命的漏洞,如果用%23代替#的话就可以被下载了,危险
4.为扩展名asp,即slkgjopi6lf09eodknvlwoieu9thlvkcs.asp,可是事实证明还是可以被下载,原因是这个asp中不包含,可以通过access数据库防下载工具处理一下.处理以后把扩展名mdb改为asp。下载地址是http://www.bookcn.net/michaeltyp/download/download.asp?downid=1&id=1057
5.最好在写ASP代码的时候,把密码加密以后在写入数据库,通用的使用md5算法.提交表单以后比较的就是加密以后的密文,这样就可以过滤掉引号的影响。
6.把Access文件加密码,虽然很容易破解这个密码,但是仍然有一定的防护作用。尽量使用复杂的密码。
7.在conn.open之前加入on error resume next,这样可以防止打开数据库出错的时候把错误信息输出到用户的浏览器。因为这个错误可能包括数据库文件的路径。
8.可以对ASP页面进行加密。使用微软的script Encoder对ASP页面进行加密。
script Encoder的运行程序是screnc.exe,其使用方法如下:
screnc [/s] [/f] [/xl] [/l defLanguage ] [/e defExtension] inputfile outputfile
其中的参数含义如下:
s:屏蔽屏幕输出;
f:指定输出文件是否覆盖同名输入文件;
xl:是否在.asp文件的顶部添加@Language指令;
l:defLanguag指定缺省的脚本语言;
e:defExtension 指定待加密文件的扩展名。
可以批量加密文件。使用script Encoder可以对当前目录中的所有的ASP 文件进行加密,并把加密后的文件统一输出到相应的目录中。例如:
screnc *.asp c:\temp
script Encoder是免费软件。该加密软件可以从微软网站下载:http://msdn.microsoft.com/scripting/vbscript/download/x86/sce10en.exe。下载后,运行安装即可。
要注意的是虚拟有的虚拟主机可能不支持加密的asp文件。