1、ASP程序连接 SQL Server 的账号不要使用sa,或任何属于Sysadmin组的账号,尽量避免应用服务有过高的权限,应使用一个db_owner权限的一般用户来连接数据库。 2、WEB应用服务器与DB服务器分别使用不同的机器来存放,并且之间最好通过防火墙来进行逻辑隔离,因为除了有程序在探测 sa 没密码的SQL Server,SQL Server 本身及大量的扩展存储过程也有被溢出攻击的危险。
on error resume next sql2="select * from dv_admin where username=’"&ReqStr("username")&"’" 11、使用过滤和防注入函数来过滤掉一些特殊的字符,防注入函数示例:
’----------------------------------- ---------------------------- Function ReqNum ( StrName ) /* 数值型变量过滤 */ ReqNum = Request ( StrName ) if Not isNumeric ( ReqNum ) then Response.Write "参数必须为数字型!" Response.End End if End Function Function ReqStr ( StrName ) /*字符型和搜索型过滤 */ ReqStr = Replace ( Request(StrName), "’", "’’" ) /* 用replace函数屏蔽单引号 */ End Function 以下三句SQL语句,说明一下调用方法: 1.SQL="select * from dv_admin where username=" & ReqNum("username")2.SQL="select * from dv_admin where username =’" & ReqStr(" username ") & "’" 3.SQL="select * from username where UserName like ’%" & ReqStr (" username ") & "%’" 12、若想更换SQL Server 的执行服务账号,则该帐号需要以下的权限: Log On Locally Log On as a Batch Access this computer from the Network Log on as service Replace a process level token Act as part of the operating system Increase quotas 13、使用Microsoft基线安全性分析器(MBSA)来评估服务器的安全性,并按照它的建议来更改系统的设定。
MBSA 是一个扫描多种Microsoft产品的不安全配置的工具,包括SQL Server和Microsoft SQL Server 2000 Desktop Engine(MSDE 2000)。它可以在本地运行,也可以通过网络运行。