舉個(gè)例子"SELECT
* FROM users WHERE name = 'dsadsfsfwe' OR '1'='1' and pw = 'd1s2qw1as2d' OR '1'='1';" ?因?yàn)?=1,所以這個(gè)SQL語(yǔ)句恒為可執(zhí)行,所以你用戶名密碼不寫(xiě)也能登陸網(wǎng)站,這叫SQL惡意攻擊,要是黑客良心更不好,直接"SELECT
* FROM users WHERE name = 'any_value' and pw = ''; DROP TABLE users"。那恭喜你,你的users表就會(huì)被人刪了。
2016-09-10
兩種都可以,只不過(guò)一般都使用預(yù)編譯sql,可以提高訪問(wèn)數(shù)據(jù)庫(kù)的效率,其次提高代碼的可讀性和可維護(hù)性。
2016-09-28
什么都不要想,需要用就直接preparedstatement,1安全有效防止SQL惡意語(yǔ)句?2效率高 3代碼整潔可讀性 4可維護(hù)性?
舉個(gè)例子"SELECT * FROM users WHERE name = 'dsadsfsfwe' OR '1'='1' and pw = 'd1s2qw1as2d' OR '1'='1';" ?因?yàn)?=1,所以這個(gè)SQL語(yǔ)句恒為可執(zhí)行,所以你用戶名密碼不寫(xiě)也能登陸網(wǎng)站,這叫SQL惡意攻擊,要是黑客良心更不好,直接"SELECT * FROM users WHERE name = 'any_value' and pw = ''; DROP TABLE users"。那恭喜你,你的users表就會(huì)被人刪了。