JDBC的SQL注入漏洞
生活随笔
收集整理的這篇文章主要介紹了
JDBC的SQL注入漏洞
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.概念:
- 利用sql語句的漏洞來對系統進行攻擊,導致數據泄露
2.案例演示
數據庫登錄表:
模擬登錄代碼【輸入正確的用戶名和密碼才能打印出用戶信息】
3.SQL注入漏洞的原因
- 使用Statement對象執行SQL時,如果SQL中拼接的變量包含了SQL關鍵字,那么就會出現SQL注入漏洞
- 如;上面的登錄案例 login( " 'or ‘1=1", “123456’or '1=1”);傳入的參數進行后臺的sql拼接時就會變成select * from login where name=’ 'or ‘1=1’ AND password ='123456’or ‘1=1’,則導致輸入不正確的參數,所有信息都被打印出來
4.SQL注入漏洞的解決辦法
-
使用PreparedStatement對象代替Statement對象執行SQL,該對象可以預編譯SQL語句,固定SQL的格式和關鍵字,用?占位符表示傳遞的數據,后期設置數據即可
【PreparedStatement為Statement的子類】 -
PreparedStatement的使用
【第一步】:使用Connection對象獲取PreparedStatement對象預編譯sql
【第二步】:如果SQL中有幾個?占位符,那么就設置幾個參數。
【第三步】:調用executeQuery()或者executeUpdate()方法執行SQL,但是不用再傳遞SQL。
總結
以上是生活随笔為你收集整理的JDBC的SQL注入漏洞的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 电脑cpu内核(电脑的内核)
- 下一篇: 如何把模型表导入数据库