安全是軟件設計的第二個非功能性需求,通常是當軟件出現安全問題的時候纔會獲得重視。程序員
最明顯的好比 數據庫用戶信息和密碼泄漏等;web
md5+salt值, 這個是軟件設計中使用的比較多的。sql
可是要預防彩虹表的解密,在加密前校驗密碼的規則,符合安全等級。數據庫
編程中用的比較多的是RSA加密,即增長一個祕鑰。能夠經過祕鑰進行加解密。編程
效率比較高。安全性也比較高,可是要預防祕鑰的泄漏。安全
即便用證書,公私鑰對,通常是使用公鑰解密,私鑰加密;學習
好比數字證書,對外發的文件,經過私鑰加密,拿到公鑰能夠解密,也能夠肯定文件的可靠性。加密
HTTPS: 是一種綜合利用非對稱和對稱加密的協議。spa
首次創建鏈接使用 私鑰生成一個祕鑰,客戶端拿到證書以後,使用它對傳輸內容進行加密,服務端使用祕鑰進行解密。兼顧了效率和安全。設計
在參數中加入非法的sql,直接傳遞到數據庫執行,達成攻擊目的。
預防方法:使用PrepareStatement
即把攻擊腳本當成數據保存在服務端,其它用戶使用該數據的時候,會轉換成攻擊腳本,泄漏用戶信息等。
預防方法:增長請求過濾;設置web防火牆;
實際工做中如何保證軟件系統的安全:
原創不易,點贊關注支持一下吧!轉載請註明出處,讓咱們互通有無,共同進步,歡迎溝通交流。
我會持續分享Java軟件編程知識和程序員發展職業之路,歡迎關注,我整理了這些年編程學習的各類資源,關注公衆號‘李福春持續輸出’,發送'學習資料'分享給你!