1 頁 (共 1 頁)

[問題]有關 SQL Injection

發表於 : 2002-04-30 17:24
小肯
聽說最近 SQL Injection 鬧的很大,
請問一下, phpBB + mySQL 會有這種問題嗎?
我還沒聽說過有災情, 但就是有點擔心... :-|

發表於 : 2002-04-30 18:07
kenlai
這種東西應該是程式設計師在寫程式的不嚴謹所造成的,其實跟軟體系統比較無關...

簡單的說,就是利用程式的漏洞侵入而已。

\n例如:

有個可以搜尋的功能,通常比較懶的程式設計師會直接把查詢(query)的字串(string)當成 SQL 語法來用,也就是使用者若輸入 「abc」,則程式就有可能是:

代碼: 選擇全部

Select user="abc" from xxx
,這樣若不加以檢查的話,假設有人特意輸入:

代碼: 選擇全部

[b]'[/b]; shell(exec) adduser myname .....
請注意,他刻意輸入單引號造成不嚴謹的程式以為sql語法結束,若此時又可以執行系統指令時(通常不可以,但 M$ 的系統比較容易...),就可以被增加一個叫 myname 的使用者,倘若他權限也開的話....那大概就為所欲為了... :evil:

所以提到 SQL injection 一般會說破壞是來自於內部,這樣的破壞反而更嚴重,因為你以為它是「合法」的使用者或執行敘述,其實不然。
所以好的程式應該要在查詢前先做過濾或判斷的動作,才不會被人有機可趁。

發表於 : 2002-04-30 18:22
oO]-[Oo
嗯.. 還好, 我一開始寫程式的時候, 老師有教, 久了就養成習慣, 參數都會檢查比較仔細才準放行

發表於 : 2002-05-11 02:03
akimasa
我想如果對程式設計有點功力的人,應都可必免掉這問題,在語法驗証上多注意一下,聽朋友說,多數會產生問題的程式,都是由產生器產生出來的,沒有去對語法做瞼証,讓人可利用此漏洞入侵,這問題已存在很久,只是最近才被大家拿出來討論,我朋友他是SOHO族,他們很早以前就利用這種方式,去測試、檢驗人家寫的程式及資料庫。