防止資料庫注入的一點小總結

2022-02-04 13:07:44 字數 2043 閱讀 6704

1.資料庫使用者不能用sa  新建乙個使用者單獨操作使用的資料庫

2取消 sysobjects  columns 表的select許可權

3****過濾

4post get url過濾

code

//////

過濾xss攻擊指令碼   

//////

傳入字串

///過濾後的字串

public

static

string

filterxss(

string

html)

-_|'\"\\

";for(

inti =0

; i 

<

chars.length; i++)

", convert.tostring((

int)chars[i], 

16).tolower(), 

";?)

"), chars[i].tostring(), system.text.regularexpressions.regexoptions.ignorecase);}//

過濾\t, \n, \r構建的惡意**  

string

keywords =;

bool

found 

=true

;while

(found)

([9][a][b]);?)?", 

"|(�([9][10][13]);?)?", 

")?");

pattern 

=string

.concat(pattern, keywords[i][j]);

}string

replacement 

=string

.concat(keywords

[i].substring(0, 

2), 

"<x>

", keywords[i].substring(

2));

ret 

=system.text.regularexpressions.regex.replace(ret, pattern, replacement, system.text.regularexpressions.regexoptions.ignorecase);

if(ret 

==retbefore)

found 

=false;}

}}code

//jscript 檔案

varstr

=location.search; 

vargs="

select|update|insert|drop|from|truncate|xp_|exec|xp_cmdshell|delete|administrators|xp_cmdshell|asc|mid|exec|count|'|>|

varlist

=new

array()

varflag

=true

;list

=gs.split('|

');for(

vari=0

;i<

list.length;i++)

} global.asax

code

protected

void

//遍歷post引數,隱藏域除外

foreach

(string

i in

this

.request.form)

//遍歷get引數。

foreach

(string

i in

this

.request.querystring)

}private

void

goerr(

string

tm)public

static

bool

sqlfilter2(

string

intext)

}return

false;}

資料庫構建的一點總結

說實話,做這樣乙個迷你的資料的確沒什麼太大的實際價值,但是還是堅持下來了,隨著 drop index indexname on tablename sql語句的完成,這個爛尾樓似的資料庫也算乙個段落了。其間,經歷了select語句的繁瑣,尤其是多表連線和where的判斷,體驗了底層文 件構建的痛苦。...

資料庫事物的一點簡單總結

原子性指事務所包含的所有操作要麼全部成功,要麼全部失敗回滾。一致性是指事務必須使資料庫從乙個一致性狀態改變到另外乙個一致性狀態,也就是說事務執行之前和執行之後都必須處於一致性狀態。隔離性是當多個使用者併發訪問資料庫時,資料庫為每個使用者開啟的事務,不能被其他事務的操作所干擾,多個併發事務之間要互相隔...

sql load的一點小總結

sqlldr userid lgone tiger control a.ctl load data infile t.dat 要匯入的檔案 infile tt.date 匯入多個檔案 infile 要匯入的內容就在control檔案裡 下面的begindata後面就是匯入的內容 into table...