`
kongzimengsheng1
  • 浏览: 68539 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JAVA中防止SQL注入攻击类的源代码

    博客分类:
  • java
阅读更多
JAVA中防止SQL注入攻击类的源代码
防止SQL注入的Javascript代码::::

Java代码

   1. 看到了一段防止SQL注入的JavaScript代码,但是似乎在后台解决的话会更好。 
    
   <SCRIPT language="JavaScript">  
   function Check(theform)  
   {  
   if (theform.UserName.value=="")  
   {  
   alert("请输入用户名!")  
   theform.UserName.focus();  
   return (false);  
   }  
   if (theform.Password.value == "")  
   {  
   alert("请输入密码!");  
   theform.Password.focus();  
   return (false);  
   }  
   }  
   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;  
   }  
   }  
   </SCRIPT>  

看到了一段防止SQL注入的JavaScript代码,但是似乎在后台解决的话会更好。

<SCRIPT language="JavaScript">
function Check(theform)
{
if (theform.UserName.value=="")
{
alert("请输入用户名!")
theform.UserName.focus();
return (false);
}
if (theform.Password.value == "")
{
alert("请输入密码!");
theform.Password.focus();
return (false);
}
}
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;
}
}
</SCRIPT>





后台处理::::

Java代码

  JAVA-字符串过滤类  
   package cn.com.hbivt.util; 
  /**
  * <p>Title: </p>
  *
  * <p>Description: </p>
  *
  * <p>Copyright: Copyright (c) 2005</p>
  *
  * <p>Company: </p>
  *
  * @author not attributable
  * @version 1.0
  */ 
  public class StringUtils { 
         //过滤通过页面表单提交的字符 
         private static String[][] FilterChars={{"<","&lt;"},{">","&gt;"},{" ","&nbsp;"},{"\"","&quot;"},{"&","&amp;"}, 
                                         {"/","&#47;"},{"\\","&#92;"},{"\n","<br>"}}; 
         //过滤通过javascript脚本处理并提交的字符 
         private static String[][] FilterScriptChars={{"\n","\'+\'\\n\'+\'"}, 
                                                             {"\r"," "},{"\\","\'+\'\\\\\'+\'"}, 
                                                                     {"\'","\'+\'\\\'\'+\'"}}; 
   
         /**
          * 用特殊的字符连接字符串
          * @param strings 要连接的字符串数组
          * @param spilit_sign 连接字符
          * @return 连接字符串
          */ 
         public static String stringConnect(String[] strings,String spilit_sign){ 
           String str=""; 
           for(int i=0;i<strings.length;i++){ 
             str+=strings[i]+spilit_sign; 
           } 
           return str; 
         } 
   
         /**
          * 过滤字符串里的的特殊字符
          * @param str 要过滤的字符串
          * @return 过滤后的字符串
          */ 
         public static String stringFilter(String str){ 
           String[] str_arr=stringSpilit(str,""); 
           for(int i=0;i<str_arr.length;i++){ 
             for(int j=0;j<FilterChars.length;j++){ 
               if(FilterChars[j][0].equals(str_arr[i])) 
                 str_arr[i]=FilterChars[j][1]; 
             } 
           } 
           return (stringConnect(str_arr,"")).trim(); 
         } 
   
         /**
  * 过滤脚本中的特殊字符(包括回车符(\n)和换行符(\r))
  * @param str 要进行过滤的字符串
  * @return 过滤后的字符串
  * 2004-12-21 闫
  */ 
  public static String stringFilterScriptChar(String str){ 
  String[] str_arr=stringSpilit(str,""); 
  for(int i=0;i<str_arr.length;i++){ 
     for (int j = 0; j < FilterScriptChars.length; j++) { 
       if (FilterScriptChars[j][0].equals(str_arr[i])) 
         str_arr[i] = FilterScriptChars[j][1]; 
     } 
  } 
  return(stringConnect(str_arr,"")).trim(); 
  } 
   
   
         /**
          * 分割字符串
          * @param str 要分割的字符串
          * @param spilit_sign 字符串的分割标志
          * @return 分割后得到的字符串数组
          */ 
         public static String[] stringSpilit(String str,String spilit_sign){ 
           String[] spilit_string=str.split(spilit_sign); 
           if(spilit_string[0].equals("")) 
           { 
             String[] new_string=new String[spilit_string.length-1]; 
             for(int i=1;i<spilit_string.length;i++) 
               new_string[i-1]=spilit_string[i]; 
               return new_string; 
           } 
           else 
             return spilit_string; 
         } 
   
         /**
          * 字符串字符集转换
          * @param str 要转换的字符串
          * @return 转换过的字符串
          */ 
         public static String stringTransCharset(String str){ 
           String new_str=null; 
           try{ 
               new_str=new String(str.getBytes("iso-8859-1"),"GBK"); 
           } 
           catch(Exception e){ 
             e.printStackTrace(); 
           } 
           return new_str; 
         } 
   
         /**
          * 测试字符串处理类
          * @param args 控制台输入参数
          */ 
         public static void main(String[] args){ 
   
           //测试字符串过滤 
           String t_str1="<h1>StringDispose字符串 处理\n\r\'\"</h1>"; 
           System.out.println("过滤前:"+t_str1); 
           System.out.println("过滤后:"+StringUtils.stringFilter(t_str1)); 
           //测试合并字符串 
           String[] t_str_arr1={"PG_1","PG_2","PG_3"}; 
           String t_str2=StringUtils.stringConnect(t_str_arr1,","); 
           System.out.println(t_str2); 
           //测试拆分字符串 
           String[] t_str_arr2=StringUtils.stringSpilit(t_str2,","); 
           for(int i=0;i<t_str_arr2.length;i++){ 
             System.out.println(t_str_arr2[i]); 
           } 
         } 
  } 
分享到:
评论

相关推荐

    SQL防注入式攻击源代码

    ### SQL防注入式攻击源代码知识点解析 #### 一、SQL注入概述 SQL注入是一种常见的安全漏洞,攻击者可以通过在应用程序的输入字段中插入恶意SQL语句来操纵数据库执行非授权操作。这种攻击可能导致敏感数据泄露、...

    基于静态分析的Java源代码SQL注入检测算法.pdf

    该算法通过一系列分析步骤构建了抽象语法树,并在此基础上定义了检测规则,进行遍历和跟踪,以检测Java源代码中可能的SQL注入路径。该方法适用于在Web应用程序部署前的安全性检查,对于保障Web应用安全、防止数据...

    SQL注入漏洞演示源代码

    在这个"SQL注入漏洞演示源代码"中,我们可以深入理解这种攻击方式的工作原理以及如何预防它。SQL注入是一种利用不安全的Web应用程序来执行恶意SQL命令的攻击手段,攻击者可以通过在输入字段中插入SQL代码来操控后台...

    sql注入软件HDSI源代码[pas]

    HDSI(可能代表SQL注入 Hacker's Data Scan Instrument)是一款基于Pascal语言编写的SQL注入工具,它的源代码可以为开发者提供深入理解SQL注入攻击机制的机会,同时也能帮助安全研究人员学习如何检测和防止此类攻击...

    SQL注入攻击与防御(安全技术经典译丛)

    本书包含所有与SQL注入攻击相关的、当前已知的信息,凝聚了由本书作者组成的、无私奉献的SQL注入专家团队的所有深刻见解。  什么是SQL注入?理解它是什么以及它的基本原理  查找、确认和自动发现SQL注入  查找代码...

    SQL注入攻击与防御

    本书包含所有与SQL注入攻击相关的、当前已知的信息,凝聚了由本书作者组成的、无私奉献的SQL注入专家团队的所有深刻见解。  什么是SQL注入?理解它是什么以及它的基本原理  查找、确认和自动发现SQL注入  查找代码...

    SQL注入漏洞演示源代码-曾是土木人

    在这个"SQL注入漏洞演示源代码"中,我们可以深入理解这种攻击方式的工作原理,并学习如何防止它。 SQL注入是通过输入恶意的SQL语句来操纵或破坏数据库的一种手段。攻击者通常在Web表单中输入特殊字符或者构造特定的...

    SQL注入源码+SQL注入命令

    标题中的"SQL注入源码+SQL注入命令"提示我们将探讨实际的源代码片段和可能的注入命令。在Java应用中,通常使用JDBC(Java Database Connectivity)来与MySQL这样的数据库进行交互。当开发者没有对用户输入的数据进行...

    SQL注入漏洞检测原型工具

    其次,SQL漏洞静态代码检测工具则从源代码层面进行分析,对程序进行深度扫描,寻找可能导致SQL注入的编程错误。这种工具通常会检查SQL查询语句的构造方式,例如是否存在字符串拼接构建SQL语句的情况,或者是否使用了...

    Java SQLServer考试信息管理系统源代码.rar

    源代码中可能包含以下关键部分: 1. 数据库连接配置:这通常在配置文件中(如db.properties),包含数据库URL、用户名、密码等信息。 2. 数据库连接类:负责建立和管理数据库连接,如`DBConnection.java`,可能实现...

    java+sqlserver网上商店【源代码】

    - **防止SQL注入**:使用预编译语句或ORM框架(如Hibernate)来避免恶意输入导致的数据安全问题。 - **性能优化**:通过缓存技术(如Redis)减少数据库访问,提高响应速度。 - **安全性**:HTTPS协议保证数据传输...

    Java超市管理,SQL2000+源代码

    在实际开发中,我们需要编写SQL语句来创建表、插入数据、更新数据和查询数据,同时,还可以利用PreparedStatement和CallableStatement等接口提高效率,防止SQL注入攻击。 在用户界面方面,Java提供了Swing和JavaFX...

    Java+SQL信用卡管理系统源代码.zip

    6. **安全性与性能**:Java的安全框架,如Spring Security,用于保护敏感信息,防止SQL注入攻击。而数据库优化,如索引设计、查询优化,能提升系统的响应速度。 7. **日志与监控**:系统会记录操作日志,便于故障...

    Java开发的sql生成器

    7. **安全防护**:防止SQL注入攻击,通过预编译或转义特殊字符等方式确保SQL语句的安全性。 在Java中实现这样的SQL生成器,可能涉及到的技术有: - **JDBC(Java Database Connectivity)**:Java连接数据库的标准...

    JAVA简单服务器源代码

    例如,使用PreparedStatement可以防止SQL注入攻击,提高代码的安全性。 此外,为了处理HTTP请求,可能还使用了Java Servlet技术。Servlet是Java平台上的一个标准,用于扩展服务器的功能。当客户端发送HTTP请求时,...

    一种新型的SQL注入攻击检测机制研究.pdf

    SQL注入攻击是网络安全中的一大威胁,它利用了Web应用程序对用户输入数据的处理不当,使得攻击者能够构造恶意的SQL代码,从而控制或篡改数据库中的数据。在本文中,我们将深入探讨一种新型的SQL注入攻击检测机制,该...

    java-sql-inspector:用于测试Java代码是否存在SQL注入漏洞的实用程序

    总的来说,Java SQL Inspector是开发过程中一个宝贵的辅助工具,能够帮助团队提高代码安全性,防止SQL注入攻击。结合良好的编程习惯和安全意识,开发者可以构建更健壮、更安全的应用程序,保障用户的数据安全。

Global site tag (gtag.js) - Google Analytics