面試刷題27:程序員如何防禦java屆的新冠肺炎?

安全頭盔

背景

安全是軟件設計的第二個非功能性需求,通常是當軟件出現安全問題的時候纔會獲得重視。程序員

最明顯的好比 數據庫用戶信息和密碼泄漏等;web

數據加解密技術

單向加密

md5+salt值, 這個是軟件設計中使用的比較多的。sql

可是要預防彩虹表的解密,在加密前校驗密碼的規則,符合安全等級。數據庫

對稱加密

編程中用的比較多的是RSA加密,即增長一個祕鑰。能夠經過祕鑰進行加解密。編程

效率比較高。安全性也比較高,可是要預防祕鑰的泄漏。安全

非對稱加密

即便用證書,公私鑰對,通常是使用公鑰解密,私鑰加密;學習

好比數字證書,對外發的文件,經過私鑰加密,拿到公鑰能夠解密,也能夠肯定文件的可靠性。加密

HTTPS: 是一種綜合利用非對稱和對稱加密的協議。spa

首次創建鏈接使用 私鑰生成一個祕鑰,客戶端拿到證書以後,使用它對傳輸內容進行加密,服務端使用祕鑰進行解密。兼顧了效率和安全。設計

http攻擊和防禦

SQL注入

在參數中加入非法的sql,直接傳遞到數據庫執行,達成攻擊目的。

預防方法:使用PrepareStatement

XSS

即把攻擊腳本當成數據保存在服務端,其它用戶使用該數據的時候,會轉換成攻擊腳本,泄漏用戶信息等。

預防方法:增長請求過濾;設置web防火牆;

小結

實際工做中如何保證軟件系統的安全:

  1. 增長代碼層面的請求過濾;
  2. 及時更新各類軟件和組件的版本,修復安全漏洞;
  3. 對數據進行加密,及時出現問題也對數據安全進行了保護。

小結腦圖

原創不易,點贊關注支持一下吧!轉載請註明出處,讓咱們互通有無,共同進步,歡迎溝通交流。
我會持續分享Java軟件編程知識和程序員發展職業之路,歡迎關注,我整理了這些年編程學習的各類資源,關注公衆號‘李福春持續輸出’,發送'學習資料'分享給你!
相關文章
相關標籤/搜索