防止SQL注入的

  1. 看到了一段防止SQL注入的JavaScript代码,但是似乎在后台解决的话会更好。   
  2.   
  3. <SCRIPT language="JavaScript">    
  4. function Check(theform)    
  5. {    
  6. if (theform.UserName.value=="")    
  7. {    
  8. alert("请输入用户名!")    
  9. theform.UserName.focus();    
  10. return (false);    
  11. }    
  12. if (theform.Password.value == "")    
  13. {    
  14. alert("请输入密码!");    
  15. theform.Password.focus();    
  16. return (false);    
  17. }    
  18. }    
  19. function IsValid( oField )    
  20. {    
  21. re= /select|update|delete|exec|count|'|"|=|;|>|<|%/i;    
  22. $sMsg = "请您不要在参数中输入特殊字符和SQL关键字!"    
  23. if ( re.test(oField.value) )    
  24. {    
  25. alert( $sMsg );    
  26. oField.value = '';    
  27. oField.focus();    
  28. return false;    
  29. }    
  30. }    
  31. </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代码 复制代码
  1. JAVA-字符串过滤类    
  2. package cn.com.hbivt.util;   
  3. /**  
  4. * <p>Title: </p>  
  5. *  
  6. * <p>Description: </p>  
  7. *  
  8. * <p>Copyright: Copyright (c) 2005</p>  
  9. *  
  10. * <p>Company: </p>  
  11. *  
  12. * @author not attributable  
  13. * @version 1.0  
  14. */  
  15. public class StringUtils {   
  16.        //过滤通过页面表单提交的字符   
  17.        private static String[][] FilterChars={{"<","&lt;"},{">","&gt;"},{" ","&nbsp;"},{"\"","&quot;"},{"&","&amp;"},   
  18.                                        {"/","&#47;"},{"\\","&#92;"},{"\n","<br>"}};   
  19.        //过滤通过javascript脚本处理并提交的字符   
  20.        private static String[][] FilterScriptChars={{"\n","\'+\'\\n\'+\'"},   
  21.                                                            {"\r"," "},{"\\","\'+\'\\\\\'+\'"},   
  22.                                                                    {"\'","\'+\'\\\'\'+\'"}};   
  23.   
  24.        /**  
  25.         * 用特殊的字符连接字符串  
  26.         * @param strings 要连接的字符串数组  
  27.         * @param spilit_sign 连接字符  
  28.         * @return 连接字符串  
  29.         */  
  30.        public static String stringConnect(String[] strings,String spilit_sign){   
  31.          String str="";   
  32.          for(int i=0;i<strings.length;i++){   
  33.            str+=strings[i]+spilit_sign;   
  34.          }   
  35.          return str;   
  36.        }   
  37.   
  38.        /**  
  39.         * 过滤字符串里的的特殊字符  
  40.         * @param str 要过滤的字符串  
  41.         * @return 过滤后的字符串  
  42.         */  
  43.        public static String stringFilter(String str){   
  44.          String[] str_arr=stringSpilit(str,"");   
  45.          for(int i=0;i<str_arr.length;i++){   
  46.            for(int j=0;j<FilterChars.length;j++){   
  47.              if(FilterChars[j][0].equals(str_arr[i]))   
  48.                str_arr[i]=FilterChars[j][1];   
  49.            }   
  50.          }   
  51.          return (stringConnect(str_arr,"")).trim();   
  52.        }   
  53.   
  54.        /**  
  55. * 过滤脚本中的特殊字符(包括回车符(\n)和换行符(\r))  
  56. * @param str 要进行过滤的字符串  
  57. * @return 过滤后的字符串  
  58. * 2004-12-21 闫  
  59. */  
  60. public static String stringFilterScriptChar(String str){   
  61. String[] str_arr=stringSpilit(str,"");   
  62. for(int i=0;i<str_arr.length;i++){   
  63.    for (int j = 0; j < FilterScriptChars.length; j++) {   
  64.      if (FilterScriptChars[j][0].equals(str_arr[i]))   
  65.        str_arr[i] = FilterScriptChars[j][1];   
  66.    }   
  67. }   
  68. return(stringConnect(str_arr,"")).trim();   
  69. }   
  70.   
  71.   
  72.        /**  
  73.         * 分割字符串  
  74.         * @param str 要分割的字符串  
  75.         * @param spilit_sign 字符串的分割标志  
  76.         * @return 分割后得到的字符串数组  
  77.         */  
  78.        public static String[] stringSpilit(String str,String spilit_sign){   
  79.          String[] spilit_string=str.split(spilit_sign);   
  80.          if(spilit_string[0].equals(""))   
  81.          {   
  82.            String[] new_string=new String[spilit_string.length-1];   
  83.            for(int i=1;i<spilit_string.length;i++)   
  84.              new_string[i-1]=spilit_string[i];   
  85.              return new_string;   
  86.          }   
  87.          else  
  88.            return spilit_string;   
  89.        }   
  90.   
  91.        /**  
  92.         * 字符串字符集转换  
  93.         * @param str 要转换的字符串  
  94.         * @return 转换过的字符串  
  95.         */  
  96.        public static String stringTransCharset(String str){   
  97.          String new_str=null;   
  98.          try{   
  99.              new_str=new String(str.getBytes("iso-8859-1"),"GBK");   
  100.          }   
  101.          catch(Exception e){   
  102.            e.printStackTrace();   
  103.          }   
  104.          return new_str;   
  105.        }   
  106.   
  107.        /**  
  108.         * 测试字符串处理类  
  109.         * @param args 控制台输入参数  
  110.         */  
  111.        public static void main(String[] args){   
  112.   
  113.          //测试字符串过滤   
  114.          String t_str1="<h1>StringDispose字符串 处理\n\r\'\"</h1>";   
  115.          System.out.println("过滤前:"+t_str1);   
  116.          System.out.println("过滤后:"+StringUtils.stringFilter(t_str1));   
  117.          //测试合并字符串   
  118.          String[] t_str_arr1={"PG_1","PG_2","PG_3"};   
  119.          String t_str2=StringUtils.stringConnect(t_str_arr1,",");   
  120.          System.out.println(t_str2);   
  121.          //测试拆分字符串   
  122.          String[] t_str_arr2=StringUtils.stringSpilit(t_str2,",");   
  123.          for(int i=0;i<t_str_arr2.length;i++){   
  124.            System.out.println(t_str_arr2[i]);   
  125.          }   
  126.        }   
  127. }  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值