JDBC-SQL注入問題

  1. 當用name作爲參數時, 如果名字裏面含有or 等帶有歧義的情況時, 或導致錯誤。比如String name = "or 1 or "將導致全部的記錄都會被輸出。這種錯誤叫做sql注入。我們需要將過濾的工作交給數據庫來處理。即PreparedStatement ps.

例子如下:

PreparedStatement ps = null;

String sql = "select id, name from user where name=?";

ps = conn.prepareStatement(sql);

ps.setString(1,name);

rs = ps.executeQuery();

2.PreparedStatement 除了具有上面過濾處理的優點,後具有效率的優點。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章