Java面試題解析之判斷以及防止SQL注入
本文研究的主要是Java面試題中的一個比較常見的題目,判斷及防止SQL注入的問題,具體介紹如下。
SQL注入是目前黑客最常用的攻擊手段,它的原理是利用數(shù)據(jù)庫對特殊標識符的解析強行從頁面向后臺傳入。改變SQL語句結(jié)構(gòu),達到擴展權限、創(chuàng)建高等級用戶、強行修改用戶資料等等操作。
那怎么判斷是否被SQL注入了呢?
通過SQL注入的原理我們知道,判斷SQL注入可以通過頁面?zhèn)魅氲臄?shù)據(jù),后臺不應該相信從后臺傳入的任何數(shù)據(jù)特別是特殊整型參數(shù)和特殊字符參數(shù)!
防止SQL注入其實也很簡單
1.檢查變量數(shù)據(jù)類型和格式
只要是固定格式的變量,在SQL語句執(zhí)行前,應該嚴格按照固定格式檢查,確保變量是我們預想的格式!
2.過濾特殊符號
對于無法確定固定格式的變量,一定要進行特殊符號過來或轉(zhuǎn)移處理,一面之星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.永遠不要相信來自用戶端的變量輸入,有固定格式的變量一定要嚴格檢查對應的格式,沒有固定格式的變量需要對引號等特殊字符進行必要的過濾轉(zhuǎn)義。
3.使用預編譯綁定變量的SQL語句
4.做好數(shù)據(jù)庫賬號權限管理
5.嚴格加密處理用戶機密信息
一個好的程序一定要注意安全性,否則只適合練手。
總結(jié)
以上就是本文關于Java面試題解析之判斷以及防止SQL注入的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!
相關文章
Java編程發(fā)展歷史(動力節(jié)點Java學院整理)
Java的歷史可以追溯到1991年4月,Sun公司的James Gosling領導的綠色計劃(Green Project)開始著力發(fā)展一種分布式系統(tǒng)結(jié)構(gòu),使其能夠在各種消費性電子產(chǎn)品上運行,他們使用了C/C++/Oak語言。由于多種原因,綠色計劃逐漸陷于停滯狀態(tài)2017-03-03
Spring容器刷新obtainFreshBeanFactory示例詳解
這篇文章主要為大家介紹了Spring容器刷新obtainFreshBeanFactory示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-03-03
spring注解之@Valid和@Validated的區(qū)分總結(jié)
@Validated和@Valid在基本驗證功能上沒有太多區(qū)別,但在分組、注解地方、嵌套驗證等功能上有所不同,下面這篇文章主要給大家介紹了關于spring注解之@Valid和@Validated區(qū)分的相關資料,需要的朋友可以參考下2022-03-03
詳解java接口(interface)在不同JDK版本中的變化
這篇文章主要介紹了詳解java接口(interface)在不同JDK版本中的變化,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-02-02
Java數(shù)據(jù)結(jié)構(gòu)之棧與隊列實例詳解
這篇文章主要給大家介紹了關于Java數(shù)據(jù)結(jié)構(gòu)之棧與隊列的相關資料,算是作為用java描述數(shù)據(jù)結(jié)構(gòu)的一個開始,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2021-11-11

