|
-解决方案 #4: 升级你的MDAC 1.5到2.0,然后再到2.1 现在,如果你是一个优秀的管理员,你应该保证你一直升级你的系统。如果你经常升级,就应该服从按顺序升级的次序。虽然同样你需要修改注册表使能'HandlerRequired',同样由于使用了2.1的Jet 4.0(没有漏洞)作为默认的数据库引擎。但是由于你是通过从2。0的升级,所以你将拥有Microsoft.Jet.OLEDB.3.51. 这意味着你的应用程序(包括RDS)对数据库的调用情况都能够被日志记录下来。而那些老版本的OLEDB是实现不了的。 你应该从注册表中将老的hooks/providers数值去掉。一个方法是删除下面的键值入口: HKEY_CLASSES_ROOT\Microsoft.Jet.OLEDB.3.51 HKEY_CLASSES_ROOT\Microsoft.Jet.OLEDB.3.51Errors 但是,你仍然需要面对的问题是兼容性能问题。 -解决方案 #5: 安装JetCopkg.exe (见微软发布的安全公告MS99-030) JetCopkg.exe是一个修改过的Jet 3.5引擎,它增强了更多的安全特性来防止被攻击。它主要是对注册表中下列键值的修改: HKEY_LOCAL_MACHINE\Software\Microsoft\Jet\3.5\engines\SandboxMode 它的值如下: 0 禁止一切 1 使能访问ACCESS,但是禁止其它 2 禁止访问ACCESS,但是使能其他 3 使能一切 (详细的解释可以 http://support.microsoft.com/support/kb/articles/q239/1/04.asp) 值得注意的是,默认的允许修改键值权限是不安全的。你必须只能够让有权限的帐号才能够修改该键值。不然该键值会带来很多安全上的隐患。切记,切记。只要将键值改成2或则3就可以将一切对RDS的攻击拒绝了。所以,这个解决方案是最好的。 由于它使用的仍然是Jet 3.5引擎,所以你不用担心兼容性的问题。同时你还是可以使用RDS的,虽然已经不能够再使用RDS进行攻击了,但是问题是匿名使用RDS还是会将你的数据库中的信息给泄露出去的。所以你需要对RDS有较深入的编程基础,我可以建议你禁止使用RDS或则将ODBC升级到MDAC 2.0,这样你就可以只让有权限的人才能够使用RDS,而拒绝匿名用户使用。
(出处:http://down.abcdown.net/)
|