男人吃奶摸下挵进去好爽,日日躁夜夜躁狠狠躁,freesexvide0s性欧美高清,高清freexxxx性国产,无码人妻一区二区三区一,乱人伦中文字幕成人网站在线,亚洲欧美综合一区二区三区 ,神马影院在线视频观看
知識學堂
  • ·聯系電話:+86.023-75585550
  • ·聯系傳真:+86.023-75585550
  • ·24小時手機:13896886023
  • ·QQ 咨 詢:361652718 513960520
當前位置 > 首頁 > 知識學堂 > 網站建設知識
5種方法防止 jsp被sql注入
更新時間:2011-11-14 | 發布人:本站 | 點擊率:679

 一、 SQL注入簡介

 
SQL注入是比較常見的網絡攻擊方式之一,它不是利用操作系統的BUG來實現攻擊,而是針對程序員編程時的疏忽,通過SQL語句,實現無帳號登錄,甚至篡改數據庫。
===========================================
 
二、 SQL注入攻擊的總體思路
 
1.尋找到SQL注入的位置
2.判斷服務器類型和后臺數據庫類型
3.針對不通的服務器和數據庫特點進行SQL注入攻擊
===========================================
 
三、SQL注入攻擊實例
 
比如在一個登錄界面,要求輸入用戶名和密碼:
 
可以這樣輸入實現免帳號登錄:
 
用戶名: ‘ or 1 = 1 –
密 碼:
 
點登陸,如若沒有做特殊處理,那么這個非法用戶就很得意的登陸進去了.(當然現在的有些語言的數據庫API已經處理了這些問題)
 
這是為什么呢? 下面我們分析一下:
 
從理論上說,后臺認證程序中會有如下的SQL語句:
 
String sql = "select * from user_table where username=
' "+userName+" ' and password=' "+password+" '";
當輸入了上面的用戶名和密碼,上面的SQL語句變成:
 
SELECT * FROM user_table WHERE username=
'’or 1 = 1 -- and password='’
分析SQL語句:
條件后面 username=” or 1=1 用戶名等于 ” 或 1=1 那么這個條件一定會成功;
然后后面加兩個-,這意味著注釋,它將后面的語句注釋,讓他們不起作用,這樣語句永遠都能正確執行,用戶輕易騙過系統,獲取合法身份。
 
這還是比較溫柔的,如果是執行
 
SELECT * FROM user_table WHERE 
username='' ;DROP DATABASE (DB Name) --' and password=''
….其后果可想而知…
============================================
 
四、應對方法
 
下面我針對JSP,說一下應對方法:
 
=============================================
 
 
要引入的包:
import java.util.regex.*;
 
正則表達式:
private String CHECKSQL = “^(.+)\\sand\\s(.+)|(.+)\\sor(.+)\\s$”;
 
判斷是否匹配:
Pattern.matches(CHECKSQL,targerStr);
 
下面是具體的正則表達式:
檢測SQL meta-characters的正則表達式 :
/(\%27)|(\’)|(\-\-)|(\%23)|(#)/ix
修正檢測SQL meta-characters的正則表達式 :/((\%3D)|(=))[^\n]*((\%27)|(\’)|(\-\-)|(\%3B)|(:))/i
典型的 SQL 注入攻擊的正則表達式 :/\w*((\%27)|(\’))((\%6F)|o|(\%4F))((\%72)|r|(\%52))/ix
檢測SQL注入,UNION查詢關鍵字的正則表達式 :/((\%27)|(\’))union/ix(\%27)|(\’)
檢測MS SQL Server SQL注入攻擊的正則表達式:
/exec(\s|\+)+(s|x)p\w+/ix
等等…..
==========================================
 
 
比較通用的一個方法:
(||之間的參數可以根據自己程序的需要添加)
=======================================
 
public static boolean sql_inj(String str)
 {
    String inj_str = "'|and|exec|insert|select|delete|update|
count|*|%|chr|mid|master|truncate|char|declare|;|or|-|+|,";
    String inj_stra[] = split(inj_str,"|");
    for (int i=0 ; i < inj_stra.length ; i++ )
    {
        if (str.indexOf(inj_stra[i])>=0)
        {
            return true;
        }
    }
    return false;
 }
==========================================
 
=======================================
 
防止SQL從URL注入:
 
sql_inj.java代碼:
=======================================
 
package sql_inj; 
 
import java.net.*;
import java.io.*;
import java.sql.*;
import java.text.*;
import java.lang.String; 
 
public class sql_inj{
public static boolean sql_inj(String str)
{
    String inj_str = "'|and|exec|insert|select|delete|update|
count|*|%|chr|mid|master|truncate|char|declare|;|or|-|+|,";
//這里的東西還可以自己添加
String[] inj_stra=inj_str.split("\\|");
    for (int i=0 ; i < inj_stra.length ; i++ )
    {
        if (str.indexOf(inj_stra[i])>=0)
        {
            return true;
        }
    }
return false;
}
}
======================================
 
===================================
 
使用javascript在客戶端進行不安全字符屏蔽
 
功能介紹:檢查是否含有”‘”,”\\”,”/”
參數說明:要檢查的字符串
返回值:0:是 1:不是
函數名是
function check(a)
{
return 1;
fibdn = new Array (”‘” ,”\\”,”/”);
i=fibdn.length;
j=a.length;
for (ii=0; ii<i; ii++)
{ for (jj=0; jj<j; jj++)
{ temp1=a.charAt(jj);
temp2=fibdn[ii];
if (tem’; p1==temp2)
{ return 0; }
}
}
return 1;
 
}
===================================
 
總的說來,防范一般的SQL注入只要在代碼規范上下點功夫就可以了。
凡涉及到執行的SQL中有變量時,用JDBC(或者其他數據持久層)提供的如:PreparedStatement就可以 ,切記不要用拼接字符串的方法就可以了。
分享到: QQ空間 新浪微博 開心網 人人網
主站蜘蛛池模板: 特级毛片a级毛片免费观看网站| 欧美第一黄网免费网站| 1区2区3区4区产品乱码入口| 老子影院午夜精品无码| 一本加勒比hezyo无码人妻| 少妇人妻88久久中文字幕| a毛片免费全部播放| 亚洲无线码一区二区三区| 波多野结衣av无码| 黄又色又污又爽又高潮动态图| 成人做爰高潮尖叫声免费观看| 欧美肥老太wbwbwbb| 97人人模人人爽人人少妇| 中文字幕人妻丝袜乱一区三区| 一本无码人妻在中文字幕免费| 在线欧美中文字幕农村电影| 最好看的中文字幕国语| 久久久国产精品黄毛片| 97碰碰碰人妻无码视频| 99久久久国产精品消防器材| 精品国产乱子伦一区二区三区| 女人毛片免费观看| 激情五月婷婷丁香六月| 久久99精品久久久学生| aa片在线观看视频在线播放| 99精品久久久久久久婷婷| 《熟妇的荡欲》在线观看| 成人伊人精品色xxxx视频| 国产欧美va欧美va香蕉在线| 亚洲va无码va在线va天堂| 亚洲av麻豆aⅴ无码电影| 亚洲2022国产成人精品无码区| 最新亚洲av电影网站| 亚洲+日产+专区| 国产精品国三级国产av| 日本猛少妇色xxxxx猛叫| av无码精品一区二区三区 | 啊┅┅快┅┅用力啊岳网站| 国产97在线 | 免费| 蜜臀av片| 精品免费看国产一区二区|