乐府诗个人博客 >> 站长手记 >> 我对后台安全的一些做法

我对后台安全的一些做法

加强ASP网站后台安全一些主要措施:
------------------------------------------------------------------------------
想想自己第一次做的网站,就遭到一个美国的IP不断功击(也并非全是坏事,因为这件事,使我从DW转向手写代码,呵呵,说来还得感谢这个人),前不久,最新完成的一个网站,不断有人直接访问备份数据库的后台文件,我为网站提供了更改管理文件夹名称的功能,但仍然马上被找到(我想他是用什么黑客软件扫描网站所有文件,并看那个文件名带有“db"字样吧),但均被踢出,我们网站仍然安然无事,现在这个网站后台功击者少了很多,也安静了。

1、使用IP或IP段,明确指定一个IP是最佳的,如果不行,可以用IP段来缩小可登入权限,

2、把管理员的帐号和密码写入页面,不要用数据库。
一般的教材通常都是教人在会员库做一个admin权限的会员,但是如果是AC数据库——特别是中小企业的网站,库被下载且密码被破,则也不存在安全;虽然现在不少服务器都能提供路径外存放数据库,也可以用#号之类的命名和改名数据库,但对于管理员权限,我认为都比不上直接用FSO把管理员的密码和帐号写到文件上,不要存在数据库。

3、为密码附加一个字串:
也许这招是多余的,但在防不胜防的情况下,我还是在用它,因为不花什么精力,
大家都知道,简单的密码易于破解,也听说有人破解过MD5密码,但现在最难也最易用的,可能还是MD5密码,那怎么加强?
对于有密码常识的人,可能会知道取一个各种组合的密码难被破解,但特别对于很多前台会员注册来说,一般人取的密码还是很简单的,也许当你的作品交付给客户时,他们的管理人员也会取个“123”的密码,如果MD5真有人破解,那也是这些简单的密码先“挂彩”。
不过可以在为这些会员以及后台管理员调一个“附加串”,如:

Dim pwd,pwdStr
pwdStr="02!adb@a2k"   '就是这个串
pwd=trim(request.form("password"))
pwd=Md5(Md5(pwd&pwdStr))   '和字串组合后,用MD5加密。

这样,不管设的密码多么简单,在加强后都会变的复杂。

4、善用服务器。
网站安全,除程序严谨以外,服务器安全设置也是很重要,现在大服务器商安全方面都做的不错,但如果是自己的服务器,就要加强。
也要充分利用服务器提供的功能,比如:路径外保存数据库;将非法IP保存到服务器拒绝IP行列中等等。

5、给功击者一点彩色。
这招是我的一个台湾老师开玩笑说的,不过我觉得可以用(然而我自己到现在为止还没用上这招)——如果你不堪其烦时,为什么不反击呢?
给功击者增加难度或处理时间,或许也是双方解脱的一个办法,因为双方都很“烦”,“当两个人打的爬在地上时,这时调解是最容易的”。

比如:把确认为非法登入者导入到病毒网页,或者转到一个“疯狂+疯狂”弹窗的页面。或者,你还有更狠的绝招就使出来。


其它的,在安全方面加强,我觉得都没有以上前四点来的重要,如果要修补,也应优先从session着手,cookies则最好不用,也不要把后台的session或cookies命名与前台会员登入相同。

我的安全策略:
1.用IIS6.0做服务器(WIN2003);不在上面装OFFICE,所以,*.mdb不能被下载,会报404.
2.我所有的GET方式和request.QueryString,都采用纯数字形式,在编程中判断数据类型后再处理.
3.POST方式全用request.Form,而不用request;并检查站内提交;每个项都用一次检查.
4.管理登录的页面记录登录并防刷新和时间内提交;
5.所有管理页第一步就是检查SESSION,并在每步操作时再检查.
6.COOKIE只用来记录用户选择的页面样式,不保存其他.
7.对提交的项目明显不对的,清空所有SESSION并跳转到自定义页面(比如,明显想注入的,就跳到警告页面;只是一般错误的,就跳到提示页面等等)<!--这里好象楼主的第五点-->
8.后台登录的时候,先检查前台SESSION(学某些论坛的).
9.所有上传,不停地检查各种项目.(虽然很慢,但是确实防止非法上传)
10.上传的文件不给出具体路径和文件名(防止改类型上传的人调用)
11.为了防止JPG图片木马,JPG图片一律用组件重新绘制.
........................


1、在IIS中删除MDB等高危文件的MIME,这样不能下载,为404
2、比较完善的防SQL注入,这样的代码太多,不用说了
3、上传目录单独划出一个相对目录,目录权限为不可执行,上传JPG木马无用
4、安全的程序,这和ASP或PHP没什么关系,PHP没配置好,危险比ASP更大
5、安全的主机,你的程序做的再安全,人家通过服务器上别的程序黑了服务器,FTP你的东西,什么都没用的

PS:VB做的DLL是伪编译,一样可以看到密码的

1.做好服务器的安全(最重要)
2.程序级的安全
(1)防注入,替换一个单引号和空格就行了
(2)屏蔽上传漏洞
(3)对用户的登录密码进行加密,如使用多种加密算法混合加密,管理员和普通用户使用不同的加密算法
(4)做个识别码,防穷举登录
(5)用密钥交换算法实现安全登录,不在网上明码传输密码

其它的什么改文件名、限IP什么的没必要。还有对什么放木马、放毒什么的,强烈BS

下列内容与有着内在的联系,建议您一并阅读。

公益广告