成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

mybatis如何防止SQL注入?

開發
sql注入發生的時間,sql注入發生的階段在sql預編譯階段,當編譯完成的sql不會產生sql注入

 

[[344248]]

 一、采用jdbc操作數據時候

  1. String sql = "update ft_proposal set id = "+id; 
  2.         PreparedStatement prepareStatement = conn.prepareStatement(sql); 
  3.         prepareStatement.executeUpdate(); 

preparedStatement 預編譯對象會對傳入sql進行預編譯,那么當傳入id 字符串為 "update ft_proposal set id = 3;drop table ft_proposal;" 這種情況下就會導致sql注入刪除ft_proposal這張表。

如何防止sql注入,首先將要執行sql進行預編譯,然后在將占位符進行替換

  1. String sql = "update ft_proposal set id = ?" 
  2. PreparedStatement ps = conn.preparedStatement(sql); 
  3. ps.setString(1,"2"); 
  4. ps.executeUpdate(); 

處理使用預編譯語句之外,另一種實現方式可以采用存儲過程,存儲過程其實也是預編譯的,存儲過程是sql語句的集合,將所有預編譯的sql 語句編譯完成后,存儲在數據庫上,

由于存儲過程比較死板一般不采用這種方式進行處理。

二、mybatis是如何處理sql注入的?

假設mapper.xml文件中sql查詢語句為:

  1. <select id="findById" resultType="String"
  2.     select name from user where id = #{userid}; 
  3. </select

對應的接口為:

  1. public String findById(@param("userId")String userId); 

當傳入的參數為3;drop table user; 當我們執行時可以看見打印的sql語句為:

select name from usre where id = ?;

不管輸入何種參數時,都可以防止sql注入,因為mybatis底層實現了預編譯,底層通過prepareStatement預編譯實現類對當前傳入的sql進行了預編譯,這樣就可以防止sql注入了。

如果將查詢語句改寫為:

  1. <select id="findById" resultType = "String"
  2. select name from user where id=${userid} 
  3. </select

當輸入參數為3;drop table user; 執行sql語句為

  1. select name from user where id = 3;drop table user ; 

mybatis沒有進行預編譯語句,它先進行了字符串拼接,然后進行了預編譯。這個過程就是sql注入生效的過程。

因此在編寫mybatis的映射語句時,盡量采用“#{xxx}”這樣的格式。若不得不使用“${xxx}”這樣的參數,要手工地做好過濾工作,來防止sql注入攻擊。

 

責任編輯:姜華 來源: 今日頭條
相關推薦

2020-08-07 08:13:08

SQL攻擊模式

2009-03-14 16:50:38

網站安全meter程序

2010-10-22 15:18:18

SQL注入漏洞

2009-07-24 16:59:57

iBatis模糊查詢

2009-02-04 16:51:48

2013-01-05 13:49:00

2014-05-26 09:32:15

2011-12-30 11:04:14

2009-03-10 08:05:19

2013-04-26 11:26:00

2017-03-01 14:16:20

2013-01-15 10:53:36

2013-01-16 14:29:22

2023-08-01 08:00:00

SQLWeb應用安全

2023-03-10 19:36:47

2009-11-12 14:56:47

2019-02-22 09:00:00

2021-09-16 09:05:45

SQL注入漏洞網絡攻擊

2010-12-20 16:04:30

2020-10-10 10:10:07

安全漏洞技術
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品99999 | 91精品国产综合久久久久久 | 久久精品二区 | 在线视频一区二区三区 | 国产一区二区精品在线观看 | 在线a视频 | 日韩1区2区| 久久久www成人免费无遮挡大片 | 五月天综合网 | 欧美中文字幕一区 | 国产亚洲精品久久19p | 91精品久久久久久久久99蜜臂 | 成人av观看 | 亚洲高清视频一区 | 美女在线视频一区二区三区 | 91xxx在线观看 | 在线三级电影 | 国产精品av久久久久久久久久 | 夜夜操天天干 | 亚洲精品免费在线观看 | 日本成人二区 | av中文字幕在线 | 国产激情91久久精品导航 | 粉嫩国产精品一区二区在线观看 | 99亚洲国产精品 | 秋霞a级毛片在线看 | 龙珠z在线观看 | 亚洲成人中文字幕 | 激情欧美一区二区三区 | 在线观看国产精品视频 | 亚洲毛片一区二区 | 精品91久久| 久久国产欧美日韩精品 | 日日操夜夜干 | 亚洲成av人片在线观看 | 毛片一区二区 | 色天堂影院| 一区二区三区成人 | 97精品一区二区 | 黄色电影在线免费观看 | 免费xxxx大片国产在线 |