通過(guò)OWASP Top 10來(lái)回答
2013版至2017版,應(yīng)用程序的基礎(chǔ)技術(shù)和結(jié)構(gòu)發(fā)生了重大變化:
1. 使用node.js和Spring Boot構(gòu)建的微服務(wù)正在取代傳統(tǒng)的單任務(wù)應(yīng)用,微服務(wù)本身具有自己的安全挑戰(zhàn),包括微服務(wù)間互信、容器工具、保密管理等等。原來(lái)沒(méi)人期望代碼要實(shí)現(xiàn)基于互聯(lián)網(wǎng)的房屋,而現(xiàn)在這些代碼就在API或RESTful服務(wù)的后面,提供給移動(dòng)應(yīng)用或單頁(yè)應(yīng)用(SPA)的大量使用。代碼構(gòu)建時(shí)的假設(shè),如受信任的調(diào)用等等,再也不存在了。
2. 使用JavaScript框架(如:Angular和React)編寫(xiě)的單頁(yè)應(yīng)用程序,允許創(chuàng)建高度模塊化的前端用戶體驗(yàn);原來(lái)交付服務(wù)器端處理的功能現(xiàn)在變?yōu)橛煽蛻舳颂幚恚矌?lái)了安全挑戰(zhàn)。
3. JavaScript成為網(wǎng)頁(yè)上最基本的語(yǔ)言。Node.js運(yùn)行在服務(wù)器端,采用現(xiàn)代網(wǎng)頁(yè)框架的Bootstrap、Electron、Angular和React則運(yùn)行在客戶端。