云时代架构--阅读笔记03
安全意識(shí)十原則(一)
我是軟件工程的學(xué)生,精力主要集中在業(yè)務(wù)開發(fā)中、功能實(shí)現(xiàn)中,較少的注意軟件的安全意識(shí),在校的我們所做的項(xiàng)目還比較小型,如果針對(duì)工作后,公司項(xiàng)目的業(yè)務(wù)實(shí)現(xiàn),我們只是簡(jiǎn)單做一下掃描和滲透,很少在在代碼和邏輯層面做深入的分析,這樣一旦出錯(cuò),會(huì)發(fā)生比較嚴(yán)重的后果,所以安全還是要做好,首先我們必須一點(diǎn)一滴的建立起必要的安全意識(shí)。
下面是作者根據(jù)自身經(jīng)驗(yàn)總結(jié)的偏產(chǎn)品技術(shù)的安全意識(shí)十原則:
整個(gè)系統(tǒng)的安全程度取決于木桶最短的那塊板。黑客往往喜歡找邊緣化的子站點(diǎn)或非核心邏輯進(jìn)行攻破,這些模塊或站點(diǎn)往往是由初級(jí)程序員打造,有的甚至還不是主站統(tǒng)一的技術(shù)架構(gòu),總體上會(huì)防備薄弱。黑客能夠攻破任意站點(diǎn)進(jìn)去到內(nèi)網(wǎng),就有種種可能。針對(duì)這點(diǎn),我們需要做的是對(duì)于安全的排查,需要全面覆蓋,除非子站在部署上用戶體系上徹底隔離。
2、開發(fā)層面:不要信任客戶端的任何東西
對(duì)于HTTP協(xié)議,不管是頭里面的東西(來(lái)源、客戶端類型、Cookie)還是正文里面的東西,任何數(shù)據(jù)都是可以偽造的。我們往往會(huì)覺得Get的東西暴露在瀏覽器地址上,里面的參數(shù)不安全,Post過(guò)來(lái)的數(shù)據(jù)因?yàn)椴槐┞毒桶踩?#xff0c;然后會(huì)信任Cookie中的數(shù)據(jù)做一些權(quán)限控制,會(huì)用頭里面的一些數(shù)據(jù)做一些安全性控制。我們需要從根子里面有這個(gè)意識(shí)所有客戶端的東西可以用但不能不經(jīng)過(guò)判斷直接相信。例如:登錄后的UserID應(yīng)該是保存在服務(wù)端的,我們根據(jù)SessionID在服務(wù)端獲得的,我們需要全面排查代碼,不允許在Controller的方法里存在類似于用戶ID這樣的字段。
3、開發(fā)層面:數(shù)據(jù)就是數(shù)據(jù)代碼就是代碼。
對(duì)于客戶端過(guò)來(lái)的任何信息應(yīng)該都只是數(shù)據(jù),應(yīng)該很少會(huì)讓客戶端來(lái)告訴服務(wù)端執(zhí)行的代碼。第一客戶端過(guò)來(lái)的數(shù)據(jù)需要讓它當(dāng)成數(shù)據(jù)來(lái)處理,不管是Encoding一下也好,SQL參數(shù)化(Mybatis的$和#問題)也好都是這個(gè)方面的措施(從前到后一路數(shù)據(jù)都以數(shù)據(jù)的身份在程序中流轉(zhuǎn)),第二從數(shù)據(jù)庫(kù)里出來(lái)的東西也只能是數(shù)據(jù)不能讓它變?yōu)镠TML或JS代碼,也需要Encoding一次再在客戶端上呈現(xiàn)。我們應(yīng)該從根源上去讓數(shù)據(jù)只可能成為數(shù)據(jù)。
4、開發(fā)層面:用戶看不到不等于黑客看不到
隨著前后端的分離,現(xiàn)在很多請(qǐng)求都是AJAX請(qǐng)求,AJAX請(qǐng)求會(huì)有幾方面的安全疏漏:
①邏輯分散而明確。(方法名稱的易理解性)
②容易覺得AJAX請(qǐng)求是前端程序發(fā)起的而忽略權(quán)限問題
③服務(wù)端返回了過(guò)多的數(shù)據(jù),這是比較危險(xiǎn)的事情,因?yàn)橛幸恍﹥?nèi)部的字段會(huì)返回出去。
④服務(wù)端返回的數(shù)據(jù)列對(duì)應(yīng)了數(shù)據(jù)庫(kù)實(shí)際的列,相當(dāng)于暴露了表結(jié)構(gòu),對(duì)于以后各種API的嘗試和注入極端危險(xiǎn)。
⑤一些敏感的數(shù)據(jù)也直接返回給客戶端了,雖然客戶端不會(huì)展現(xiàn)出來(lái),但是對(duì)于黑客來(lái)說(shuō)根本不在于用戶看得到看不到這些數(shù)據(jù)。
這就要求我們?cè)谧鲈O(shè)計(jì)的時(shí)候盡可能仔細(xì)審視AJAX的接口的權(quán)限、數(shù)據(jù)開放性和脫敏等問題。
?
?原文章:?https://mp.weixin.qq.com/s/gd-XqGGh08o-vWFZSR0RJg?tdsourcetag=s_pctim_aiomsg
轉(zhuǎn)載于:https://www.cnblogs.com/zhao-teng-ass/p/10549821.html
總結(jié)
以上是生活随笔為你收集整理的云时代架构--阅读笔记03的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JPEG图片扩展信息读取与改动
- 下一篇: linux下的/dev/shm/ 以及与