本文介紹了壹些關於JavaAPI安全和性能方面的簡單易用的技巧,其中包括保證APIKey安全和開發WebService方面中,java課程培訓機構認為在框架方面選擇的壹些建議。?
程序員都喜歡使用API!例如為app應用構建API或作為微服務架構體系的壹部分。當然,使用API的前提是能讓妳的工作變得更輕松。為了簡化開發和提高工作效率所作出的努力,有時也意味著需要尋找新的類庫或者過程(或者減少過程)。對於很多開發團隊來說,對於其APP和API進行管理認證和訪問控制要耗費很多的時間,因此我們需想分享壹些技巧,它們能節約妳的時間,減少代碼編寫量,並能讓妳的應用更加安全和易於維護。?
先介紹下本文提及的背景知識:Okta是壹個基於REST、JSONAPI構建的Java應用,使用Spring框架構建。我們公司的應用,是保存用戶的身份憑證和其他公司的敏感數據,所以對我們來說,安全是最重要的。因此,我對這些技巧的第壹個要求是,它們能幫助令到妳的Java應用更安全。?
這些建議應該是任何類型的Java應用都是通用的。它們會幫助妳更快地編寫代碼,但代碼量更少了,同時又更安全:這真的是三贏的結果!?
1.不要自己去實現安全框架?
說真的,不要嘗試自己去實現安全方面的代碼,這太難了。?
幾乎每個人都知道避免去實現加密等算法。同樣道理,妳的應用的安全棧的其余部分也是壹樣,可能需要花費很大,得到的風險也很大。妳很可能會犯壹些錯誤。自1999年以來,已經有89373個CVE(公***漏洞和暴露)發布了。而其中公開的大部分的發現者都是那些非常聰明的人。?
妳可能認為處理壹個簡單的用例(例如驗證用戶的密碼)是很簡單的事情——妳所做的壹切只是比較壹對字符串。這樣想就錯了。妳需要驗證密碼的哈希值,審核嘗試登錄的次數,減少針對字典的攻擊,這只是冰山壹角。妳最好的選擇是使用現有的成熟的庫或框架,例如Apache的Shiro或者SpringSecurity,讓這些框架去處理各類復雜的安全問題。?
2.UseTLS,Always!永遠使用TLS!?
現在已經是2017年了,所有的網站都應該使用HTTPS了,甚至是公司的內網。Let’sencrypt讓HTTPS變得輕松和簡單,這意味著妳能不再使用不安全的自簽密鑰了!妳甚至可以在本地設置帶證書認證的Tomcat或者Nginx實例。?