本篇文章為延伸閱讀,用於加強網頁部分知識,給想了解更深入卻無從下手的入門者。
注入攻擊的類型分成以下:
比較和我們有關係的是SQL注入(SQL Injection)
是針對資料庫相關網頁應用程式or服務來進行攻擊
舉例來說,我的Mysql程式碼是
SELECT user_name,password FROM account WHERE user_name=?
?用來輸入帳號,如果我帳號寫"" OR 1 = 1,會變成
SELECT user_name,password FROM account WHERE user_name="" OR 1 = 1
會導致程式出錯,因為它會用出全部的資料。
SQL注入(SQL Injection)就是這麼回事,輕微的注入會導致出錯,嚴重的注入則是會導致資料庫被刪除or帳號被入侵。
過濾輸入:
確保使用正則表達式去過濾用戶的輸入,更改和檢測輸入的參數,讓像是單引號進行一些方法,讓它不會被辨別是程式。
限制輸入的字元:
限定字元不能是特殊符號,限制輸入欄位的長度,像是生日沒有必要開放到20個字元以上
屏蔽顯示錯誤訊息
千萬不要將系統或資料庫的錯誤顯示於網頁上,盡可能避免顯示出Server 及資料庫的系統或是版本,以防止網站成了攻擊者的目標