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

jsp中防止sql注入的一些基本预防措施

 一、啥是sql注入
     所谓sql注入简单说就是被人钻了SQL的空子下面举个最简单的例子。
     sql 为:"select * from users where username='"+userName+"' and password='"+password+"' "
     1、攻击者只要在传入的userName加上'--上面的sql便将username='"+userName+"' 后面的条件全部注释掉。直接验证通过。
     2、甚至攻击者只要传入 ' or 1=1 --  道理也是一样的。
     3、sql注入原理推荐个文章,里面有介绍。http://www.nosec.org/2009/0918/59.html
二、解决方法: 过滤掉用户输入中的危险字符
    1、第一种采用预编译语句集,它内置了处理SQL注入的能力,只要使用它的setString方法传值即可:
    String sql= "select * from users where username=? and password=?;
    PreparedStatement preState = conn.prepareStatement(sql);
    preState.setString(1, userName);
    preState.setString(2, password);
    ResultSet rs = preState.executeQuery();    
   2、将传入的字符串做过滤.replaceAll(".*([';]+|(--)+).*", " ");
   3、js验证:通过js过滤掉客户端提交上来的字符(现在绕过js验证的方法太多不建议采用)
  function IsValid( oField ){ 
    re= /select|update|delete|exec|count|'|"|=|;|>|<|%/i; 
    $sMsg = "请您不要在参数中输入特殊字符和SQL关键字!" 
    if ( re.test(oField.value) ) 
    { 
    alert( $sMsg ); 
    oField.value = '';
    oField.focus(); 
    return false; 
  } 
说明:以上文章大部分来参考网络资料。整理后方便自己的查阅和学习。


相关文档:

MS SQL Server 2008分布式查询MySQL

  近日,俺通过MS SQL Server 2008的链接服务器查询MySQL的数据。其实,俺在多年前就使用过这个,当时是分布式查询Excel表数据,现在,换成异构数据库MySQL。俺以64位系统说明:
   首先,Windows程序访问MySQL数据库需要驱动程序,可以到官方网站下载,俺就是使用Mysql ODBC 5.1 Driver for 64bit,通过数 ......

Excel、SQL、VS6.0、特别是处理ListCtrl与Excel

一、关于CREATE TABLE tab1 (字段名 TEXT)中,字段名为“a.a.a或a.a.b”时,提示:
“字段定义语法错误”
答:在字段名字外面加上“[ ]”就可以了!
二、创建一个以ListCtrl第一列为EXCEL第一行的表结构 和 插入一个以ListCtrl第N列为EXCEL第二行的表结构
      ......

轉SQL Server 远程链接服务器详细配置

 远程链接服务器详细配置
--
建立连接服务器
EXEC
sp_addlinkedserver
'
远程服务器IP
'
,
'
SQL Server
'
--
标注存储
EXEC
sp_addlinkedserver
@server

=

'
server
'
,
--
链接服务器的本地名称。也允许使用实例名称,例如MYSERVER\SQL1
@srvproduct

=

'
product_name ......

用ADO管理SQL SERVER !

      在软件开发中,常常需要为程序建立Sql Server数据库的运行环境。完成如在SQL Server数据库中建立设备,建立数据库,建立表格,分配权限等功能,如何方便的建立应用程序所需Sql Server环境的数据库环境,而不用启动SQL Enterprise Manager呢?
下面来看: 
  启动VB6.0,新建一个工 ......

使用SQL SERVER的Link Server实现分布式事务

ansi_warning和ansi_nulls 两个选项必须打开,好像对系统也没啥影响。
 
楼主再检查一下两个地方,经测试,在要使用分布式事务时,这是必须要设置的。
1、链接服务器和名称解析问题
-- 创建链接服务器
EXEC sp_addlinkedserver 'srv_lnk', 'ms', 'SQLOLEDB', '192.168.1. ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号