關(guān)于軟件安全
應(yīng)用云計算的,高度網(wǎng)絡(luò)化的現(xiàn)代計算機世界,安全是軟件工程最重要的一個方面。
了解安全最重要的一點是它不是一個重點項目。你不能開發(fā)過程的最后才考慮他它。你必須從一開始就意識地設(shè)計安全到你的應(yīng)用程序或服務(wù)中,并把它作為從設(shè)計到實現(xiàn),測試,發(fā)布的整個過程的一部分。

概述
在應(yīng)用程序?qū)?,安全意味著你的代碼如何使用信息并且確保它的安全可靠。例如,以下都是你的責(zé)任:
保證用戶的個人數(shù)據(jù)安全不被窺視。使用一個安全的方式存儲數(shù)據(jù),并且確保您的軟件只收集需要的信息。
小心對待不可信賴的文件和數(shù)據(jù)。如果你的軟件訪問互聯(lián)網(wǎng)或讀取也許是之前在互聯(lián)網(wǎng)上發(fā)送給某人的文件,你的軟件必須正確驗證這些數(shù)據(jù)。如果不,它可能在不經(jīng)意間為攻擊者提供一個向量來訪問其他可能存儲在用戶的計算機或其他移動設(shè)備上的個人數(shù)據(jù)。
在傳輸過程中保護數(shù)據(jù)。如果你的軟件在互聯(lián)網(wǎng)上傳輸個人信息,在傳輸過程中,你必須用一個安全可靠的方式來防止未經(jīng)授權(quán)的訪問或者修改這些數(shù)據(jù)。
驗證數(shù)據(jù)的真實性。如果你的軟件可以訪問或使用簽名數(shù)據(jù),它應(yīng)該驗證這些簽名,以確保數(shù)據(jù)沒有被篡改。如果你的軟件可以訪問或使用簽名數(shù)據(jù),應(yīng)該驗證這些簽名,以確保數(shù)據(jù)沒有被篡改。
威脅模型幫助您識別風(fēng)險領(lǐng)域
在規(guī)劃階段,你必須確定軟件的威脅性質(zhì)和最安全的架構(gòu)方式。要做到這一點,你應(yīng)該建立一個威脅模型顯示您的軟件的那些部分可能被攻擊。
相關(guān)章節(jié):iOS安全概要-1-風(fēng)險評估和威脅建模
安全編碼技術(shù)和操作系統(tǒng)安全功能幫助你減輕風(fēng)險
在開發(fā)過程的每個階段,你必須采取措施降低風(fēng)險:
避免利用編碼缺陷。在實現(xiàn)階段,你必須避免使用不安全的編碼技術(shù),可以導(dǎo)致任意代碼注入,拒絕服務(wù)或其他不正確的行為。
不斷更新風(fēng)險模型。在整個開發(fā)過程中, 隨著軟件的發(fā)展您應(yīng)該繼續(xù)執(zhí)行定期的風(fēng)險評估和更新你的威脅模型,那么它就能準(zhǔn)確地反映出你的風(fēng)險。
不要重新發(fā)明輪子。確保您的軟件和數(shù)據(jù)的時候,你應(yīng)該利用內(nèi)置的安全功能,而不是編寫自己的。特別是,您可能需要確定用戶是否合法與否,將消息安全的發(fā)送到服務(wù)器保護在運輸過程中數(shù)據(jù)的完整性和保密性,或在本地磁盤存儲數(shù)據(jù)保護數(shù)據(jù)安全。
相關(guān)章節(jié):
iOS安全概要-1-風(fēng)險評估和威脅建模
iOS安全概要-2-代碼安全
iOS安全概要-3-驗證與授權(quán)
iOS安全概要-4-加密服務(wù)