易截截图软件、单文件、免安装、纯绿色、仅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&""

这样你的查询语句就通过了,从而就可以进入你的管理界面。
所以防范的时候需要对用户的输入进行检查。特别式一些特殊字符,比如单引号,双引号,分号,逗号,冒号,连接号等进行转换或者过滤。
需要过滤的特殊字符及字符串有:
   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


相关文档:

SQL Server 2005中实现自动备份

在SQL Server 2005数据库中实现自动备份的具体步骤: 
1、打开SQL Server Management Studio 
2、启动SQL Server代理 
3、点击作业->新建作业 
4、"常规"中输入作业的名称 
5、新建步骤,类型选T-SQL,在下面的命令中输入下面语句(红色部分要根据自己 ......

SQL SERVER 如何读取页面上的数据

CSDN上有篇帖子http://topic.csdn.net/u/20100223/15/644e6212-9fdc-42de-81ad-785d28ed71d3.html
讨论查询计划读取索引页的问题。
主要问题是: 在一张建有聚集索引(没有其它非聚集索引)的表执行select count(*) 。查询显示扫描了所有的索引中间层叶。从理论上讲,由于每个数据页都记录着它的上一个page和下一个page, ......

把SQL Server数据表的内容转换为相应的INSERT语句

笔者曾在《程序员》2009年11期上探讨Transact-SQL的元编程,即通过目录视图、元数据函数等方式访问数据库的元数据信息,在执行过程中动态生成SQL脚本。当时限于篇幅,所给的例子较少。这里给出动态生成SQL脚本的一个典型应用,把数据表的内容转换为相应的INSERT语句。
这个启发来自我管理远程数据库的经历。我常常需要用本 ......

DBMS_SQL包实现动态SQL

.在查询中会遇到 UNION ALL,它的用法和union一样,只不过union含有distinct的功能,它会把两张表了重复的记录去掉,而union all不会,所以从效率上,union all 会高一点.
2.union all 是按原先顺序排列的,union 把两张表中的重复数据去掉后还进行了重新排序
声明:此文来源于网路!
内容摘要:在PL/SQL开发过程中,使用SQL, ......

sql 命名问题

正确的: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) ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号