用户名:
密 码: 记住
您当前的位置:首页 > 网络编程 > sqlserver教程

防范sql注入式攻击js版本

时间:2014-11-30  来源:互联网  作者:佚名

SQL(SQL Server培训 mySQL培训 )注入式攻击是利用是指利用设计上的漏洞,在目标服务器上运行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="****">

<script>

asp版的防范SQL注入式攻击代码~:

以下为引用的内容:

<%

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("SERVER_PORT")

strTemp = strTemp & Request.ServerVariables("URL")

If Trim(Request.QueryString) <> "" Then strTemp = strTemp & "?" & Trim(Request.QueryString)

strTemp = LCase(strTemp)

If Instr(strTemp,"select%20") or Instr(strTemp,"insert%20") or Instr(strTemp,"delete%20from") or Instr(strTemp,"count(") or Instr(strTemp,"drop%20table") or Instr(strTemp,"update%20") or Instr(strTemp,"truncate%20") or Instr(strTemp,"asc(") or Instr(strTemp,"mid(") or Instr(strTemp,"char(") or Instr(strTemp,"xp_cmdshell") or Instr(strTemp,"exec%20master") or Instr(strTemp,"net%20localgroup%20administrators") or Instr(strTemp,":") or Instr(strTemp,"net%20user") or Instr(strTemp,"''") or Instr(strTemp,"%20or%20") then

Response.Write "<script language=''****''>"

Response.Write "alert(''非法地址!!'');"

Response.Write "location.href=''error.asp'';"

Response.Write "<script>"

End If

%>

以下是较为简单的防范方法,这些都是大家比较熟悉的方法,希望能给你一点帮助~

主要是针对数字型的变量传递:

id = Request.QueryString("id")

If Not(isNumeric(id)) Then

Response.Write "非法地址~"

Response.End

End If

来顶一下
返回首页
返回首页
推荐资讯
从零开始学ASP.NET-基础篇第1/7页 从零开始学ASP.NET-基础篇第1/7页第一天 学习目的: 掌握最基本的Label、TextBox、Button控件
ASP.NET入门数据篇 ASP.NET入门数据篇对于网站编程的初学者来说,总是会上网找些源码来看,但久而
相关文章
栏目更新
栏目热门