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