防范SQL注入式攻击
SQL注入式攻击是利用是指利用设计上的漏洞,在目标服务器上运行Sql命令以及进行其他方式的攻击动态生成Sql命令时没有对用户输入的数据进行
验证是Sql注入攻击得逞的主要原因。
比如:
如果你的查询语句是select * from admin where
username="&user&" and password="&pwd&""
那么,如果我的用户名是:1 or 1=1
那么,你的查询语句将会变成:
select * from admin
where username=1 or 1=1 and password="&pwd&""
这样你的查询语句就通过了,从而就可以进入你的管理界面。
所以防范的时候需要对用户的输入进行检查。特别式一些特殊字符,比如单引号,双引号,分号,逗号,冒号,连接号等进行转换或者过滤。
需要过滤的特殊字符及字符串有:
net user
xp_cmdshell
/add
exec
master.dbo.xp_cmdshell
net localgroup administrators
select
count
Asc
char
mid
:
"
insert
delete from
drop table
update
truncate
from
%
下面关于解决注入式攻击的防范代码,供大家学习参考!
js版的防范SQL注入式攻击代码:
<script language="javascript">
<!--
var url = location.search;
var
re=/^\?(.*)(select%20|insert%20|delete%20from%20|count\(|drop%20table|update%20truncate%20|asc\(|mid\(|char\(|xp_cmdshell|exec%20master|net%20localgroup%20administrators|\"|:|net%20user|\|%20or%20)(.*)/gi;
var e = re.test(url);
if(e) {
alert("地址中含有非法字符~");
location.href="error.asp";
}
//-->
<script>
asp版的防范SQL注入式攻击代码~:
[CODE START]
<%
On Error Resume Next
Dim strTemp
If LCase(Request.ServerVariables("HTTPS")) = "off" Then
strTemp =
"http://"
Else
strTemp = "https://"
End If
strTemp = strTemp & Request.ServerVariables("SERVER_NAME")
If
Request.ServerVariables("SERVER_PORT") <> 80 Then strTemp =
strTemp & ":" & Request.ServerVariables("SERV
相关文档:
1. In "MicroSoft SQL Server Management Studio", right click SQL Server instance, select "Properties", select "Security" in left panel and check "SQL Server and Windows Authentication mode" in right Panel.
2. In "SQL Server Configuration Manager", select "SQL Server Network Configuration > ......
正确的:select isnull(money,0) from (select sum(money) as money,3 as b from zhangbenjilu where datepart(month,usedatetime)=3) as a
错误的:select isnull(money,0) from (select sum(money) as money,3 from zhangbenjilu where datepart(month,usedatetime)=3) ......
转载:
http://blog.sina.com.cn/s/blog_5f4ed9cb0100dza0.html
http://wowh.wuyan.org/2008/04/15/sqlserver-2k-system-error-126/
在安装sql server 经常遇到这样、那样的错误,今天在搜到比较全面的,就贴出来,分享下!
SQL
Server安装问题大全
(2007-09-06
09:24:28)
标签:IT/科技
壹。WINDOWS XP ......
1.Oracle为客户端开启会话有两种方式:共享服务和专用服务。在专用服务情况下,监听器为连接请求创建新进程(Unix环境下是Process,Windows下我想应该是Thread吧);共享服务情况下,监听器将客户请求交给Dispatcher,由Dispatcher安排多客户的作业。SQL Server在默认情况下自动为客户端连接创建线程,当有非常多的客 ......