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

 一、 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空間 新浪微博 開心網 人人網
主站蜘蛛池模板: 大地资源网在线观看免费动漫| 亚洲国产另类久久久精品黑人| 无码熟妇人妻av在线网站| 久久亚洲av永久无码精品| 精品国产乱子伦一区二区三区| 久久久久国产精品人妻aⅴ免费| 极品少妇被弄得高潮不断| 国产一三四2021不卡| 啊┅┅快┅┅用力啊岳网站| 欧美性猛交╳xxx乱大交| 中国老头和老妇tube| 日本护士体内she精2╳╳╳| 樱桃视频高清免费观看在线| 青草视频在线观看| 两公的浮之手中字| 亚洲 欧美 另类中文字幕| 成年免费视频黄网站在线观看| 一本久道久久综合久久爱| 色综合久久久久无码专区| 亚洲国产成人久久综合区| 久久露脸国产精品| 无码人妻一区二区三区免费| 欧美牲交40_50a欧美牲交aⅴ| 中文字幕 日韩精品 在线| jizz国产精品| 99精品国产一区二区三区| 婷婷精品国产亚洲av在线观看| 欧美人妻体内射射| 丰满的妽妽用身体满足了我电影 | 国语对白做受xxxxx在线| 国产成人一区二区三区视频免费| 高潮毛片无遮挡高清视频播放 | 成人+国产+高清| 久久精品国产亚洲av九| 熟妇的奶头又大又长奶水视频| 天堂а在线中文在线新版| 一二三四在线播放免费观看高清电影| 欧美日韩国产精品自在自线| 久久久噜噜噜www成人网| 人与性动交aaaabbbb视频| 国产日产欧产美|