我覺得你應(yīng)該先了解下什么是sql注入,所謂SQL注入式攻擊,就是攻擊者把SQL命令插入到Web表單的輸入域或頁面請求的查詢字符串,欺騙服務(wù)器執(zhí)行惡意的SQL命令。在某些表單中,用戶輸入的內(nèi)容直接用來構(gòu)造(或者影響)動態(tài)SQL命令,或作為存儲過程的輸入?yún)?shù),這類表單特別容易受到SQL注入式攻擊。 你可以了解下這個http://www.cnblogs.com/heyuquan/archive/...,sql注入是一種安全隱患,實際上跟是什么數(shù)據(jù)庫沒有直接關(guān)系,是程序過濾不完全導(dǎo)致的,簡單的注入就是用戶輸入了特殊字符,導(dǎo)致我們在代碼中的sql語句變了查詢的結(jié)果也不是我們想要的!
其實吧,我們現(xiàn)在寫sql直接都是預(yù)編譯sql,也就是說你想注入。。??赡苁菦]戲了
直接給你舉兩個例子吧!【】里面的代表實際sql位置傳入的參數(shù)
我們的代碼:select username,password from user where username=?
然后你傳入?yún)?shù)【123 or username is not null】
數(shù)據(jù)庫帶著你的參數(shù)傳進(jìn)去然后編譯這條sql語句
然后編譯結(jié)果就是:select username,password from user where username='123' or username is not null
最終執(zhí)行結(jié)果就是 所有的用戶都查出來了
我們的代碼:select username,password from user where username=?
然后你傳入?yún)?shù)【123 or username is not null】
然后數(shù)據(jù)庫編譯這條sql語句 select username,password from user where username=?
然后帶著你的參數(shù)放在username位置 發(fā)現(xiàn)是字符串,然后加上單引號‘’
然后執(zhí)行的sql就是:select username,password from user where username=‘123 or username is not null’
最終執(zhí)行結(jié)果就是沒有username=‘123 or username is not null’ 的
所以,這填空題你咋填都不對