作者popcorny (畢業了..@@")
看板java
標題Re: [問題] Hibernate 設定動態 SQL 語法
時間Sun Dec 30 16:22:32 2012
※ 引述《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
推 cyclone350:了解,謝謝 12/30 17:05
推 cyclone350:在spring上面的hibernateTemplate有許多要設定param 01/01 01:40
→ cyclone350:google一下用那個應該就可以了,另外想問J2EE基礎的書 01/01 01:42
推 cyclone350:除了王者歸來還有其他推薦的嗎?簡體也可,2008後 01/01 01:45
→ cyclone350:因為我繁體書根本找不到書...只有王者歸來那本 01/01 01:47
推 song760211:上網查討厭鬼 ssh教學 01/01 08:43
→ popcorny:建議看官方文件 這領域要看中文的真的是慢又少 01/01 15:02