21.安装最新的MDAC(http://www.microsoft.com/data/download.htm)
说明:MDAC为数据访问部件,通常程序对数据库的访问都通过它,但它也是黑客攻击的目标,为防止以前版本的漏洞可能会被带入升级后的版本,建议卸载后安装最新的版本。注意:在安装最新版本前最好先做一下测试,因为有的数据访问方式或许在新版本中不再被支持,这种情况下可以通过修改注册表来档漏洞,祥见漏洞测试文档。
22.设置IP拒绝访问列表
说明:对于WWW服务,可以拒绝一些对站点有攻击嫌疑的地址;尤其对于FTP服务,如果只是自己公司上传文件,就可以只允许本公司的IP访问改FTP服务,这样,安全性大为提高。
23.禁止对FTP服务的匿名访问
说明:如果允许对FTP服务做匿名访问,该匿名帐户就有可能被利用来获取包多的信息,以致对系统造成危害。
24.建议使用W3C扩充日志文件格式,每天记录客户IP地址,用户名,服务器端口,方法,URI字根,HTTP状态,用户代理,而且每天均要审查日志。(最好不要使用缺省的目录,建议更换一个记日志的路径,同时设置日志的访问权限,只允许管理员和system为Full Control)
说明:作为一个重要措施,既可以发现攻击的迹象,采取预防措施,也可以作为受攻击的一个证据。
25.慎重设置WEB站点目录的访问权限,一般情况下,不要给予目录以写入和允许目录浏览权限。只给予.ASP文件目录以脚本的权限,而不要给与执行权限。
说明:目录访问权限必须慎重设置,否则会被黑客利用。
26.涉及用户名与口令的程序最好封装在服务器端,尽量少的在ASP文件里出现,涉及到与数据库连接地用户名与口令应给予最小的权限。
说明:用户名与口令,往往是黑客们最感兴趣的东西,如果被通过某种方式看到源代码,后果是严重的。因此要尽量减少它们在ASP文件中的出现次数。出现次数多得用户名与口令可以写在一个位置比较隐蔽的包含文件中。如果涉及到与数据库连接,理想状态下只给它以执行存储过程的权限,千万不要直接给予该用户以修改、插入、删除记录的权限。
27.需要经过验证的ASP页面,可跟踪上一个页面的文件名,只有从上一页面转进来的会话才能读取这个页面。
说明:现在的需要经过验证的ASP程序多是在页面头部加一个判断语句,但这还不够,有可能被黑客绕过验证直接进入,因此有必要跟踪上一个页面。具体漏洞见所附漏洞文档。
28.防止ASP主页.inc文件泄露问题
当存在asp 的主页正在制作并没有进行最后调试完成以前,可以被某些搜索引擎机动追加为搜索对象,如果这时候有人利用搜索引擎对这些网页进行查找,会得到有关文件的定位,并能在浏览器中察看到数据库地点和结构的细节揭示完整的源代码。
解决方案:应该在网页发布前对其进行彻底的调试;安全专家需要褂讪asp 包含文件以便外部的用户不能看他们。 首先对 .inc 文件内容进行加密,其次也可以使用 .asp 文件代替 .inc 文件使用户无法从浏览器直接观看文件的源代码。.inc 文件的文件名不用使用系统默认的或者有特殊含义容易被用户猜测到的,尽量使用无规则的英文字母。
29.注意某些ASP编辑器会自动备份asp文件,会被下载的漏洞
在有些编辑asp程序的工具,当创建或者修改一个asp文件时,编辑器自动创建一个备份文件,比如:UltraEdit就会备份一个.bak文件,如你创建或者修改了some.asp,编辑器自动生成一个叫some.asp.bak文件,如果你没有删除这个 bak文件,攻击有可以直接下载some.asp.bak文件,这样some.asp的源程序就会给下载。
在处理类似留言板、BBS等输入框的ASP程序中,最好屏蔽掉HTML、javascript、VBScript语句,如无特殊要求,可以限定只允许输入字母与数字,屏蔽掉特殊字符。同时对输入字符的长度进行限制。而且不但在客户端进行输入合法性检查,同时要在服务器端程序中进行类似检查。
说明:输入框是黑客利用的一个目标,他们可以通过输入脚本语言等对用户客户端造成损坏; 如果该输入框涉及到数据查询,他们会利用特殊查询输入得到更多的数据库数据,甚至是表的全部。因此必须对输入框进行过滤。但如果为了提高效率仅在客户端进行输入合法性检查,仍有可能被绕过,因此必须在服务器端再做一次检查。
30.防止ACCESS mdb 数据库有可能被下载的漏洞
在用ACCESS做后台数据库时,如果有人通过各种方法知道或者猜到了服务器的ACCESS数据库的路径和数据库名称,那么他能够下载这个ACCESS数据库文件,这是非常危险的。
解决方法:
1>为你的数据库文件名称起个复杂的非常规的名字,并把他放在几目录下。所谓 “非常规”, 打个比方: 比如有个数据库要保存的是有关书籍的信息, 可不要把他起个“book.mdb”的名字,起个怪怪的名称,比如d34ksfslf.mdb, 再把他放在如./kdslf/i44/studi/的几层目录下,这样黑客要想通过猜的方式得到你的ACCESS数据库文件就难上加难了。
2>不要把数据库名写在程序中。有些人喜欢把DSN写在程序中,比如:
DBPath = Server.MapPath("cmddb.mdb")
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath
假如万一给人拿到了源程序,你的ACCESS数据库的名字就一览无余。因此建议你在ODBC里设置数据源,再在程序中这样写:
conn.open "shujiyuan"
3>使用ACCESS来为数据库文件编码及加密。首先在选取堡具->安全->加密/解密数据库,选取数据库(如:employer.mdb),然后接确定,接着会出现“数据库加密后另存为”的窗口,存为:employer1.mdb。 接着employer.mdb就会被编码,然后存为employer1.mdb。
要注意的是,以上的动作并不是对数据库设置密码,而只是对数据库文件加以编码,目的是为了防止他人使用别的工具来查看数据库文件的内容。
接下来我们为数据库加密,首先以打开经过编码了的employer1.mdb, 在打开时,选择“独占”方式。然后选取宝能表的“工具->安全->设置数据库密码”, 接着 输入密码即可。这样即使他人得到了employer1.mdb文件,没有密码他是无法看到 employer1.mdb的。
31.SQL SERVER是NT平台上用的最多的数据库系统,但是它的安全问题也必须引起重视。数据库中往往存在着最有价值的信息,一旦数据被窃后果不堪设想。
及时更新补丁程序。
说明:与NT一样,SQL SERVER的许多漏洞会由补丁程序来弥补。建议在安装补丁程序之前先在测试机器上做测试,同时提前做好目标服务器的数据备份。
给SA一个复杂的口令。
说明:SA具有对SQL SERVER数据库操作的全部权限。遗憾的是,一部分网管对数据库并不熟悉,建立数据库的工作由编程人员完成,而这部分人员往往只注重编写SQL 语句本身,对SQL SERVER数据库的管理不熟悉,这样很有可能造成SA口令为空。这对数据库安全是一个严重威胁。目前具有这种隐患的站点不在少数。
严格控制数据库用户的权限,轻易不要给让用户对表有直接的查询、更改、插入、删除权限,可以通过给用户以访问视图的权限,以及只具有执行存储过程的权限。
说明:用户如果对表有直接的操作权限,就会存在数据被破坏的危险。制订完整的数据库备份与恢复策略。
32.目前,PCANYWHERE是最流行的基于2000的远程控制工具,同样也需要注意安全问题。
建议采用单独的用户名与口令,最好采用加密手段。千万不要采用与NT管理员一样的用户名与口令,也不要使用与NT集成的口令。同时在服务器端的设置时务必采用security options中的强加密方式,拒绝低加密水平的连接,同时采用口令加密与传输过程中的用户名与口令加密,以防止被嗅探到,还要限制连接次数,另外很重要的一点就是一定在protect item中设置高强度的口令,同时一定限制不能够让别人看到你的host端的任何设置,即便是要察看主机端的相关设置也必须要输入口令!
说明:PCANYWHERE 口令是远程控制的第一个关口,如果与NT的一样, 就失去了安全屏障。被攻破后就毫无安全可言。而如果采用单独的口令,即使攻破了PCANYWHERE,NT还有一个口令屏障。及时安装较新的版本。
33.实际上,安全和应用在很多时候是矛盾的,因此,你需要在其中找到平衡点,毕竟服务器是给用户用而不是做OPEN HACK的,如果安全原则妨碍了系统应用,那么这个安全原则也不是一个好的原则。 网络安全是一项系统工程,它不仅有空间的跨度,还有时间的跨度。很多朋友(包括部分系统管理员)认为进行了安全配置的主机就是安全的,其实这其中有个误区:我只能说一台主机在一定的情况一定的时间上是安全的随着网络结构的变化、新的漏洞的发现,管理员/用户的操作,主机的安全状况是随时随地变化着的,只有让安全意识和安全制度贯穿整个过程才能做到真正的安全。
以下是提高IIS 5.0网站服务器的执行效率的八种方法:
1. 启用HTTP的持续作用可以改善15~20%的执行效率。
2. 不启用记录可以改善5~8%的执行效率。
3. 使用 “独立” 的处理程序会损失20%的执行效率。
4. 增加快取内存的保存文件数量,可提高Active Server Pages之效能。
5. 勿使用CGI程序。
6. 增加IIS 5.0电脑CPU数量。
7. 勿启用ASP侦错功能。
8. 静态网页采用HTTP 压缩,大约可以减少20%的传输量。
34.启用HTTP的持续作用(Keep-Alive)时,IIS与浏览器的连线不会断线,可以改善执行效率,直到浏览器关闭时连线才会断线。因为维持“Keep-Alive”状态时,于每次用户端请求时都不须重新建立一个新的连接,所以将改善服务器的效率。此功能为HTTP1.1预设的功能,HTTP 1.0加上Keep-Alive header也可以提供HTTP的持续作用功能。
启用HTTP的持续作用可以改善15~20%的执行效率。如何启用HTTP的持续作用呢?步骤如下:在“Internet服务管理员”中,选取整个IIS电脑、或Web站台,于“内容”之“主目录”页,勾选“HTTP的持续作用”选项。
35.不启用记录可以改善5~8%的执行效率。如何设定不启用记录呢?步骤如下:
在“Internet服务管理员”中,选取整个IIS电脑、或Web站台,于“内容”之“主目录”页,不勾选“启用记录”选项。设定非独立的处理程序使用“独立”的处理程序会损失20%的执行效率,此处所谓“独立”系指将“主目录”、“虚拟目录”页之应用程序保护选项设定为“高(独立的)” 时。因此“应用程序保护”设定为“低 (IIS处理程序)”时执行效率较高如何设定非“独立”的处理程序呢?步骤如下:在“Internet服务管理员”中,选取整个IIS电脑、Web站台、或应用程序的起始目录。于“内容”之“主目录”、“虚拟目录”页,设定应用程序保护选项为“低 (IIS处理程序)”。
36.IIS 5.0将静态的网页资料暂存于快取(Cache)内存当中;IIS 4.0则将静态的网页资料暂存于文件当中。调整快取(Cache)内存的保存文件数量可以改善执行效率。ASP指令文件执行过后,会在暂存于快取(Cache)内存中以提高执行效能。增加快取内存的保存文件数量,可提高Active Server Pages之效能。可以设定所有在整个IIS电脑、“独立”Web站台、或“独立”应用程序上执行之应用程序的快取内存文件数量。如何设定快取(Cache)功能呢?步骤如下:在 “Internet服务管理员” 中选取整个IIS电脑、“独立”Web站台、或“独立”应用程序的起始目录。于 “内容” 之 “主目录”、“虚拟目录” 页,按下 “设定” 按钮时,即可由 “处理程序选项” 页设定“指令档快取内存” 。如何设定快取(Cache)内存文件数量呢?步骤如下:在“Internet服务管理员” 中,选取整个IIS电脑、或Web站台的起始目录。于 “内容” 之“服务器扩充程序” 页,按下 “设定” 按钮。即可设定快取(Cache)内存文件数量。
37.使用CGI程序时,因为处理程序(Process)须不断地产生与摧毁,造成执行效率不佳。一般而言,执行效率比较如下: 静态网页(Static):100 ISAPI:50 ASP:10 CGI:1。换句话说,ASP比CGI可能快10倍,因此勿使用CGI程序可以改善IIS的执行效率。以弹性(Flexibility)而言:ASP > CGI > ISAPI > 静态网页(Static)。以安全(Security)而言:ASP(独立) = ISAPI(独立)= CGI > ASP(非独立) = ISAPI(非独立)= 静态网页(Static)
38.根据微软的测试报告,增加IIS 4.0电脑CPU数量,执行效率并不会改善多少;但是增加IIS 5.0电脑CPU数量,执行效率会几乎成正比地提供,换句话说,两颗CPU的IIS5.0电脑执行效率几乎是一颗CPU电脑的两倍,四颗CPU的IIS 5.0电脑执行效率几乎是一颗CPU电脑的四倍IIS 5.0将静态的网页资料暂存于快取(Cache)内存当中;IIS 4.0 则将静态的网页资料暂存于文件当中。调整快取(Cache)内存的保存文件数量可以改善执行效率。
39.勿启用ASP侦错功能可以改善执行效率。如何勿启用ASP侦错功能呢?步骤如下:于“Internet服务管理员” 中,选取Web站台、或应用程序的起始目录,按右键选择“内容”,按 “主目录”、“虚拟目录” 或 “目录” 页,按下 “设定” 按钮,选择 “应用程序侦错” 页,不勾选 “启用ASP服务器端指令侦错”、“启用ASP用户端指令侦错” 选项。
40.静态网页采用HTTP 压缩,大约可以减少20%的传输量。HTTP压缩功能启用或关闭,系针对整台IIS服务器来设定。用户端使用IE 5.0浏览器连线到已经启用HTTP压缩IIS5.0之Web服务器,才有HTTP压缩功能。如何启用HTTP压缩功能呢?步骤如下:若要启用HTTP压缩功能,方法为在“Internet服务管理员”中,选取电脑之“内容”,于“主要内容”之下选取“WWW服务”。然后按一下“编辑” 按钮,于“服务”页上,选取“压缩静态文件”可以压缩静态文件,不选取“压缩应用程序文件”。动态产生的内容文件(压缩应用程序文件)也可以压缩,但是须耗费额外CPU处理时间,若%Processor Time已经百分之八十或更多时,建议不要压缩。
以上是对采用IIS作为WEB服务器的一些安全相关的设置与其性能调整的参数设置,可以最大化的优化你的IIS,不过个人认为如果不存在障碍,还是采用apache比较好一些,漏洞少,建议采用apache 1.3.24版本,因为最近经测试,apache 1.3.23之前的版本都存在溢出漏洞,不要怕,这种漏洞很少的。另外,个人建议不要采用ASP安全性总不叫人放心,个人认为还是采用JSP好一些,安全性好,功能强大,绝对超值,因为PHP也存在不少的漏洞。