易截截图软件、单文件、免安装、纯绿色、仅160KB

防范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&""
 这样你的查询语句就通过了,从而就可以进入你的管理界面。
所以防范的时候需要对用户的输入进行检查。特别式一些特殊字符,比如单引号,双引号,分号,逗号,冒号,连接号等进行转换或者过滤。
(除了上面的方式外还可以通过存储过程来防范SQL注入攻击)
需要过滤的特殊字符及字符串有:
   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("SERVER_PORT")
strTemp = strTemp & Request.ServerVariables("


相关文档:

SQL语句优化方法

我们要做到不但会写SQL,还要做到写出性能优良的SQL语句。 
  
  (1)选择最有效率的表名顺序(只在基于规则的优化器中有效): 
  
  Oracle的解析器按照从右到左的顺序处理from子句中的表名,from子句中写在最后的表(基础表 driving table)将被最先处理,在from子句中包含多个表的情况下,你必须选择 ......

用SQL生成流水号

用SQL生成流水号
转:韦江涛    发表于2010年02月03日 09:38 阅读(4) 评论(0)
 
 
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[fn_FillNumberWithZero]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[fn_FillNumberWithZero]
GO
if exists ( ......

sql 按照任意顺序进行排序

--创建一张表
create table stut
(
  id int,
  na varchar(20)
)
--插入4条数据。
insert into stut values(1,'aa')
insert into stut values(2,'bb')
insert into stut values(3,'df')
insert into stut values(4,'中国')
select * from stut
--根据'df,aa,中国,bb'来进行排序
select * from stut ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号