Java程式設計師從笨鳥到菜鳥(四十六) SQL 注入

2021-08-21 14:16:48 字數 910 閱讀 1709

sql 注入攻擊指的是通過構建特殊的輸入作為引數傳入 web 應用,主要原因是程式沒有細緻地過濾使用者輸入的資料,只是非法資料侵入系統。

sql 注入可分為平台層注入和**層注入,平台層注入由不安全的資料庫配置或資料庫平台的漏洞所致;**層注入主要是由於程式設計師對輸入未進行細緻地過濾,從而執行了非法查詢

使用 preparedstatement

採用預編譯語句集,內建了處理 sql 注入的能力

輸入驗證

檢查使用者輸入的合法性,前後端一起進行輸入校驗,使用正規表示式過濾傳入的引數

錯誤訊息處理

要避免一些詳細的錯誤資訊

加密處理

將使用者登入名、密碼等資料加密儲存

儲存過程來執行所有查詢

sql 引數的傳遞方式將放置攻擊者利用單引號和連線字元實施攻擊,使得資料庫許可權可以限制到只允許特定的儲存過程執行,所有的使用者輸入必須遵從被呼叫者的儲存過程的安全上下文

使用專業的漏洞掃瞄工具

確保資料庫安全

鎖定資料庫的安全,只給訪問資料庫的 web 應用功能所需的最低許可權,撤銷不必要的公共許可,使用強大的加密技術來保護敏感資料並維護審查跟蹤

發布之前做安全評審

附:

儲存過程

儲存過程(stored procedure) 是在大型資料庫系統中,一組為了完成特定功能的 sql 語句集,儲存在資料庫中,經過第一次編譯後再次呼叫不需要再次編譯,使用者通過指定儲存過程的名字並給出引數來執行它。儲存過程是資料庫中的乙個重要物件。

Java程式設計師從笨鳥到菜鳥(三十八)vue

1.實現上 original message p methdos reversed message p computed reversed message p div data methods computed script 執行結果 original message hello methdos r...

Java程式設計師從笨鳥到菜鳥(七)陣列和集合

1.陣列和集合的區別 2.集合相關知識 2.1 集合體系中的三個主要介面 list set map list和set實現了collection介面 2.2 set 不允許重複元素,hashset和treeset是兩個主要實現類,set的取值只能通過游標 2.3 list 允許元素重複,arrayli...

從程式設計師到CEO

從程式設計師到ceo 序言 今天我無意中在網路上看到某位仁兄通過部落格出了一本 程式設計師的羊皮卷 我突然感覺這個世界表達個人際遇的機會太多了。同時作為一名在it行業打拼了近15年的老鳥的我,覺得很多時候年青人的區辨力,很多時候比較隨波,如果我們能及時的多種真實的聲音,我想可以為新人提供多點參考。我...