課程
/后端開發
/Java
/JDBC之 “ 對岸的女孩看過來”
where 1=1 不會導致sql注入嗎?
2016-09-30
源自:JDBC之 “ 對岸的女孩看過來” 2-6
正在回答
對 于 JDBC而言, SQL注入 攻 擊 只 對 Statement有效, 對 PreparedStatement 是無效的, 這 是因 為 PreparedStatement 不允 許 在不同的插入 時間 改 變查詢 的 邏輯結 構。 ?如 驗證 用 戶 是否存在的 SQL語 句 為 : ?select count(*) from usertable where name='用 戶 名 ' and pswd='密 碼 '如果在 用 戶 名字段 中 輸 入 ' or '1'='1' or '1'='1或是在 密 碼 字段 中 輸 入 1' or '1'='1將 繞過驗證 ,但 這種 手段只 對 只 對 Statement有效, 對 PreparedStatement 無效。 ?PreparedStatement 相 對 Statement有以下 優 點: ?1.防注入攻擊 ?2.多次運行速度快 ?3.防止數據庫緩沖區溢出 ?4.代 碼 的可讀性可維護性好
這里不會產生SQL注入,這里的where 1=1永遠成立,而你擔心的SQL注入問題是where后面緊跟傳入的參數或語句,而這里并沒有授予傳參的權利而是直接寫死1=1。
不會的
舉報
一起領略JDBC的奧秘,為進一步學習集成框架打下良好的基礎
1 回答where 1=1?
2 回答看不懂這個地方的 追加的 where 1 =1
1 回答為什么我的sql包不能自動導入,
3 回答對于sql注入怎么處理呢
3 回答為什么我這方法中寫入的SQL語句會不行?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2016-11-13
對 于 JDBC而言, SQL注入 攻 擊 只 對 Statement有效, 對 PreparedStatement 是無效的, 這 是因 為 PreparedStatement 不允 許 在不同的插入 時間 改 變查詢 的 邏輯結 構。 ?
如 驗證 用 戶 是否存在的 SQL語 句 為 : ?
select count(*) from usertable where name='用 戶 名 ' and pswd='密 碼 '
如果在 用 戶 名字段 中 輸 入 ' or '1'='1' or '1'='1
或是在 密 碼 字段 中 輸 入 1' or '1'='1
將 繞過驗證 ,但 這種 手段只 對 只 對 Statement有效, 對 PreparedStatement 無效。 ?
PreparedStatement 相 對 Statement有以下 優 點: ?
1.防注入攻擊 ?
2.多次運行速度快 ?
3.防止數據庫緩沖區溢出 ?
4.代 碼 的可讀性可維護性好
2016-11-13
這里不會產生SQL注入,這里的where 1=1永遠成立,而你擔心的SQL注入問題是where后面緊跟傳入的參數或語句,而這里并沒有授予傳參的權利而是直接寫死1=1。
2016-09-30
不會的