Re: [問題] Hibernate 設定動態 SQL 語法
※ 引述《cyclone350 (老子我最神)》之銘言:
: 不過剛剛看到 LaPass 在 webdesign 版上看到他說有人 sql 語句用 + 號湊成
: 不管是用什麼 framework都不安全...
: 不過就我目前的想法,動態形成HQL或是SQL語句時除了這方法,想不太到別的。
: 另外不安全的意思是?? Hacker 會駭到我的 JVM 裡面,改我的 String pool 嗎?
剛好天氣冷所以宅在家
那就單就這段來回答
全部用+來湊sql容易產生sql injection的問題
因為db通常都透過web來操作
而要查詢的資料常常是透過web的form或是querystring帶過來的
如果直接把這個字串丟到sql
那可能會被hacker拿去組你原本沒想到的sql
假設你原本寫的sql是
"select * from Order where uid=" + uid
這時使用者寫了一個uid是[0 or 1 = 1]
這時組出來的sql就是
select * from Order where uid = 0 or 1 = 1
這時就會把所有的Order都扔出來了
解決方法是你最好用jdbc的prepared statement..
或是你用hibernate/jpa,那就用jpql parameter來避免sql injection..
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.137.78.102
推
12/30 17:05, , 1F
12/30 17:05, 1F
推
01/01 01:40, , 2F
01/01 01:40, 2F
→
01/01 01:42, , 3F
01/01 01:42, 3F
推
01/01 01:45, , 4F
01/01 01:45, 4F
→
01/01 01:47, , 5F
01/01 01:47, 5F
推
01/01 08:43, , 6F
01/01 08:43, 6F
→
01/01 15:02, , 7F
01/01 15:02, 7F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):