服务器方面
1、首先是要NTFS格式,并减少user之类用户的权限,FAT32格式的磁盘没有权限设置,也就没有安全可言;
2、其次是补丁要全,否则服务器中了木马,那什么都是白搭;
3、接着是禁用危险的组建和服务项,这个比较难,如果是简单的应用还好说,如果服务器里跑着比较纠结的程序,很可能就会因为禁止了某些组件或服务导致无法运行,我对这个是比较头痛的,所以做安全还是有必要知道应用所涉及到的权限以及其他方面;
4、端口屏蔽,比如普通的WEB服务器开个21和80以及3389就够了;
5、加密传输,这个防止嗅探的,不过WIN好像没自带;
6、密码安全、桌面锁定软件、命令函数更名等其他小的设置,就和安全意识有关了,作用不会太大,但是比没有要好。
IIS安全
1、执行权限这个很重要,不同的站点用不同的匿名用户访问,但是这些用户不能给权限,连组都不用加,而且这写单独访客的权限只在对应的WEB目录有效,其他盘都无效,Everyone之类的大权限统统删掉…而且大部分目录不给写入权,用户权限是WEB安全最重要的一块;
2、取消掉没用的API扩展,搞黑的都知道asp传不了就用asa或者cer格式的木马,安全也一样,没用的API扩展统统去掉,比如asp的站点只留一个.asp的,其他扩展删掉,你传了后门也没用;
3、取消不必要的WEB扩展,扩展多了漏洞也就多,能少用还是少用吧。
权限类
1、站点单独用户权,防止跨站,IIS那说过了,其实这个可以再IIS设置,也可以再硬盘设置,本质都一样,就是NTFS格式的权限设置,而且权限最多给到读取写入,不可能再多了;
2、目录与文件的权限设置,图片目录这样的,给个读取权就可以了,而且脚本都可以禁掉,没哪个图片是可执行的吧… 文件也一样,HTML的目录和文件,脚本权可以禁掉,普通页面给个读取权就可以了,写入权这玩意很危险,能少给就少给,但是弄错了网站会崩;
3、特殊目录的权限,像D盘E盘这样的,删了Everyone就连子目录的也一并删了,但是例如system这样的目录,没有继承权,你删了C盘的某用户,很多子目录里还是有的,要一个一个删,否则就会出现像入侵时候遇到的情况:C盘无法访问,但是用户文件夹和windows目录可以访问。
代码安全
1、代码防注入,这个是最多的安全问题,有了数据库就有了注入,防御办法很多,绕过防御的办法也很多,很难一概而论,总之还是靠程序员的安全意识与代码功底;
2、上传漏洞的防止,除了注入上传也是个大户,很多入侵依赖上传,解决方案是:减少上传数量,提高验证强度,验证的时候要固定后缀、类型,而不是排除,上传的文件随即命名,自动修改后缀,上传目录不给任何权限!
3、文件命名规则,一些测试文件和敏感文件,名称和目录一定不能让人猜解,或者加入验证,猜解到了文件也进不去;
4、第三方代码,这个要少用,尤其是小团队写的,DISCUZ这么牛X的代码都一直爆漏洞,别说其他代码了,原因是这些代码都是公开的,可以从源代码里找漏洞,很危险的;
5、其他一些例如防社会工程学漏洞、防爆路径,就比较难说清了,还是安全意识的问题。