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