Java面試題解析之判斷以及防止SQL注入
本文研究的主要是Java面試題中的一個比較常見的題目,判斷及防止SQL注入的問題,具體介紹如下。
SQL注入是目前黑客最常用的攻擊手段,它的原理是利用數(shù)據(jù)庫對特殊標識符的解析強行從頁面向后臺傳入。改變SQL語句結構,達到擴展權限、創(chuàng)建高等級用戶、強行修改用戶資料等等操作。
那怎么判斷是否被SQL注入了呢?
通過SQL注入的原理我們知道,判斷SQL注入可以通過頁面?zhèn)魅氲臄?shù)據(jù),后臺不應該相信從后臺傳入的任何數(shù)據(jù)特別是特殊整型參數(shù)和特殊字符參數(shù)!
防止SQL注入其實也很簡單
1.檢查變量數(shù)據(jù)類型和格式
只要是固定格式的變量,在SQL語句執(zhí)行前,應該嚴格按照固定格式檢查,確保變量是我們預想的格式!
2.過濾特殊符號
對于無法確定固定格式的變量,一定要進行特殊符號過來或轉移處理,一面之星SQL時有歧義。
當我們上傳圖片的時候
enctype=\”multipart/form-data\” enctype=”multipart/form-data”
沒有“/“,表單中enctype=”multipart/form-data”的意思,是設置表單的MIME編碼。默認情況,這個編碼格式是application/x-www-form-urlencoded,不能用于文件上傳;只有使用了multipart/form- data,才能完整的傳遞文件數(shù)據(jù),進行下面的操作.
3.綁定變量,使用預編譯語句
實際上,綁定變量使用預編譯語句是預防SQL注入的最佳方法,使用預編譯的SQL語句語義不會發(fā)生改變。在SQL語句中,變量用問號?表示,黑客即使本事再大,也無法改變SQL語句的格式,從根本上杜絕了SQL注入攻擊的發(fā)生。
4.數(shù)據(jù)庫信息加密安全
有時候數(shù)據(jù)庫信息泄露了,我們應該對數(shù)據(jù)庫的密碼等信息進行加密(MD5等),這樣信息泄露,損失也可以在控制在一定范圍內(nèi)。
使用JSP的時候要注意
1.不要隨意開一生產(chǎn)環(huán)境匯總Webserver的錯誤顯示。
2.永遠不要相信來自用戶端的變量輸入,有固定格式的變量一定要嚴格檢查對應的格式,沒有固定格式的變量需要對引號等特殊字符進行必要的過濾轉義。
3.使用預編譯綁定變量的SQL語句
4.做好數(shù)據(jù)庫賬號權限管理
5.嚴格加密處理用戶機密信息
一個好的程序一定要注意安全性,否則只適合練手。
總結
以上就是本文關于Java面試題解析之判斷以及防止SQL注入的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!
相關文章
基于SpringBoot實現(xiàn)上傳2種方法工程代碼實例
這篇文章主要介紹了基于SpringBoot實現(xiàn)上傳工程代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-08-08
Java中compareTo()和compare()方法使用及區(qū)別詳解
這篇文章主要介紹了Java中compareTo()和compare()方法使用及區(qū)別的相關資料,compareTo()方法用于定義類的自然排序,適用于具有單一、固定排序方式的場景,compare()方法提供自定義排序的靈活性,適用于需要根據(jù)不同規(guī)則對對象進行排序的場景,需要的朋友可以參考下2025-01-01
SpringBoot整合Groovy腳本實現(xiàn)動態(tài)編程詳解
這篇文章主要為大家介紹了SpringBoot整合Groovy腳本實現(xiàn)動態(tài)編程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-09-09
詳解SpringBoot中的統(tǒng)一結果返回與統(tǒng)一異常處理
這篇文章主要將通過詳細的討論和實例演示來幫助你更好地理解和應用Spring Boot中的統(tǒng)一結果返回和統(tǒng)一異常處理,感興趣的小伙伴可以了解下2024-03-03
java substring(a)與substring(a,b)的使用說明
這篇文章主要介紹了java substring(a)與substring(a,b)的使用說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-10-10

