本文研究的主要是Java面試題中的一個比較常見的題目,判斷及防止SQL注入的問題,具體介紹如下。
SQL注入是目前黑客最常用的攻擊手段,它的原理是利用數據庫對特殊標識符的解析強行從頁面向後台傳入。改變SQL語句結構,達到擴展權限、創建高等級用戶、強行修改用戶資料等等操作。
通過SQL注入的原理我們知道,判斷SQL注入可以通過頁面傳入的數據,後台不應該相信從後台傳入的任何數據特別是特殊整型參數和特殊字符參數!
1.檢查變量數據類型和格式
只要是固定格式的變量,在SQL語句執行前,應該嚴格按照固定格式檢查,確保變量是我們預想的格式!
2.過濾特殊符號
對於無法確定固定格式的變量,一定要進行特殊符號過來或轉移處理,一面之星SQL時有歧義。
當我們上傳圖片的時候
enctype=/”multipart/form-data/”enctype=”multipart/form-data”
沒有“/“,表單中enctype=”multipart/form-data”的意思,是設置表單的MIME編碼。默認情況,這個編碼格式是application/x-www-form-urlencoded,不能用於文件上傳;只有使用了multipart/form- data,才能完整的傳遞文件數據,進行下面的操作.
3.綁定變量,使用預編譯語句
實際上,綁定變量使用預編譯語句是預防SQL注入的最佳方法,使用預編譯的SQL語句語義不會發生改變。在SQL語句中,變量用問號?表示,黑客即使本事再大,也無法改變SQL語句的格式,從根本上杜絕了SQL注入攻擊的發生。
4.數據庫信息加密安全
有時候數據庫信息洩露了,我們應該對數據庫的密碼等信息進行加密(MD5等),這樣信息洩露,損失也可以在控制在一定範圍內。
1.不要隨意開一生產環境匯總Webserver的錯誤顯示。
2.永遠不要相信來自用戶端的變量輸入,有固定格式的變量一定要嚴格檢查對應的格式,沒有固定格式的變量需要對引號等特殊字符進行必要的過濾轉義。
3.使用預編譯綁定變量的SQL語句
4.做好數據庫賬號權限管理
5.嚴格加密處理用戶機密信息
一個好的程序一定要注意安全性,否則只適合練手。
以上就是本文關於Java面試題解析之判斷以及防止SQL注入的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續參閱本站其他相關專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!