自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

安全編碼有章可循(二)

安全
在《安全編碼有章可循(一)》一文中為大家講述了在做好安全軟件開發(fā)的準(zhǔn)備之后,開發(fā)團隊還需要清楚安全編碼的原則的一部分,例如:保持代碼清潔,確??梢韵蚯昂拖蚝笞匪菰创a等。本文中將繼續(xù)為您介紹更多安全編碼原則,讓我們一起來看看吧。

《安全編碼有章可循(一)》一文中為大家講述了在做好安全軟件開發(fā)的準(zhǔn)備之后,開發(fā)團隊還需要清楚安全編碼的原則的一部分,例如:保持代碼清潔,確??梢韵蚯昂拖蚝笞匪菰创a等。本文中將繼續(xù)為您介紹更多安全編碼原則,讓我們一起來看看吧。

避免本地和非本地代碼、被動代碼和動態(tài)代碼之間的安全沖突

應(yīng)用程序常常依賴于用另一種編程語言編寫的代碼,或者在應(yīng)用程序初期開發(fā)完成之后,還要使用另外一種編程語言進行后期處理。例如,有些非本地的JAVA應(yīng)用程序可能會依賴本地的C代碼來處理與硬件的接口。這是一個潛在的漏洞,因為即使JAVA代碼部分并不易于遭受攻擊,攻擊者也有可能會對本地代碼執(zhí)行緩沖區(qū)的溢出攻擊。

再舉另一個例子,AJAX應(yīng)用程序為了執(zhí)行某項操作,有可能支持Web瀏覽器動態(tài)生成的JavaScript。因而,動態(tài)生成的代碼有可能在原始的應(yīng)用程序開發(fā)完成之后,再開發(fā)動態(tài)生成的代碼。此時,如果動態(tài)生成的代碼做出了關(guān)于應(yīng)用程序環(huán)境和狀態(tài)的不同假設(shè),這就會導(dǎo)致AJAX應(yīng)用程序的非法輸入驗證。

在這兩種情形中,應(yīng)用程序?qū)⒈镜卮a和動態(tài)代碼當(dāng)作是潛在的不可信的實體,這一點是很關(guān)鍵的。另外,開發(fā)人員對發(fā)送給不可信代碼、來自不可信代碼的數(shù)據(jù)進行驗證也是至關(guān)重要的。

編碼期間和日后的檢查

安全代碼檢查的主要目的是發(fā)現(xiàn)安全缺陷并確認可能的修復(fù)手段。測試報告應(yīng)當(dāng)提供關(guān)于軟件可能的漏洞點的足夠詳細信息,使其開發(fā)者能夠根據(jù)這些漏洞被黑客利用的可能性進行分類,并區(qū)分其優(yōu)先順序。應(yīng)用指南應(yīng)當(dāng)包含在檢查代碼時應(yīng)當(dāng)考慮的問題清單。這會確保被檢查的代碼符合確定的標(biāo)準(zhǔn),而不會受到檢查者偏好的影響。

代碼的安全檢查的一些技巧:

何時檢查:應(yīng)當(dāng)在軟件的單元或模塊水平上就進行代碼的安全檢查。在將軟件的不同單元或模塊提交進行編譯和鏈接之前,程序員還應(yīng)當(dāng)檢查軟件單元或模塊之間的接口缺陷。應(yīng)當(dāng)盡早并經(jīng)常地在軟件的生命周期進行源代碼的分析和白盒測試。最有效的白盒測試是在個別模塊或在功能性的進程單元水平上進行的,這種測試可以在將模塊添加到更大的代碼庫之前相對輕松、快速地糾正發(fā)現(xiàn)的問題。全面的系統(tǒng)代碼檢查應(yīng)當(dāng)著重于不同組件之間的關(guān)系和接口上。

同行檢查:程序員應(yīng)當(dāng)樂于請其它程序員檢查自己的代碼,因為程序員容易遺漏自己所犯的錯誤。

工具的使用:可以用靜態(tài)、動態(tài)、二進制分析工具來發(fā)現(xiàn)常見的漏洞。例如微軟就提供了FxCop的免費下載,這是一個靜態(tài)的分析工具。此外,還有 BinScope Binary Analyzer、Mini-Fuzz File Fuzzer 。不過,這些工具可以產(chǎn)生大量的似是而非的信息,因而應(yīng)當(dāng)結(jié)合人工檢查使用,切不可用它完全替代人工檢查。

代碼檢查者的能力:只有檢查者洞悉安全問題時,人工檢查才會有用。至少代碼檢查者應(yīng)當(dāng)清楚軟件編碼所用語言的漏洞及解決漏洞的方法,還要熟悉數(shù)據(jù)庫、Web應(yīng)用程序、加密技術(shù)等。

充分利用測試案例:程序員應(yīng)當(dāng)創(chuàng)建一些一般的測試案例。測試應(yīng)當(dāng)有助于指出明顯的程序漏洞,它還應(yīng)當(dāng)是一個測試誤用情況的機會。

威脅模型的檢查:安全代碼的檢查應(yīng)當(dāng)包括檢查威脅模型的文檔,確保所識別的威脅在發(fā)布代碼前能夠被正確地處理。

遵循標(biāo)準(zhǔn):安全的編碼檢查應(yīng)當(dāng)確保遵循所有的編碼標(biāo)準(zhǔn),其中包括使用安全的函數(shù)庫,并排除被廢止的函數(shù)。

此外,在安全的編碼檢查期間應(yīng)當(dāng)關(guān)注如下問題:

1、所有的組件都應(yīng)當(dāng)遵循同樣的框架和確定的編碼風(fēng)格。

2、查找開發(fā)者在代碼中的后門、調(diào)試命令、硬編碼憑證、敏感評論、過于詳細的錯誤消息等。這些增加到源代碼中的要素可以使開發(fā)人員在測試時更易于調(diào)整軟件的狀態(tài)。在軟件被編譯并部署之后,這些元素也容易被利用。開發(fā)者應(yīng)當(dāng)從一開始就避免使用這些元素,除非絕對必要。

3、在軟件系統(tǒng)的執(zhí)行期間,要查找任何沒有用到的調(diào)用和沒有完成任何功能的代碼。因為這些代碼有可能包括會激發(fā)環(huán)境級別或中間件級別的進程調(diào)用,而系統(tǒng)并不要求在目標(biāo)環(huán)境中出現(xiàn)這些進程。

4、還要查找惡意代碼的線索和指示。例如,如果該代碼是用C語言編碼的,那么,檢查者就有可能尋找可以指明漏洞特性的注釋或復(fù)雜的、難以跟蹤的代碼部分,或者查找包含嵌入的匯編語言代碼的源代碼。檢查人員應(yīng)當(dāng)檢查所有已發(fā)現(xiàn)的漏洞,看其是否存在潛在的被利用的機會。可能被利用的漏洞稱為安全漏洞,應(yīng)當(dāng)在代碼發(fā)布之前就解決這些漏洞。

責(zé)任編輯:Oo小孩兒 來源: TT安全
相關(guān)推薦

2012-06-28 09:45:58

2009-04-15 09:12:49

子網(wǎng)安全劃分

2021-11-25 12:52:03

數(shù)據(jù)安全

2022-11-11 08:16:02

java性能技術(shù)

2022-05-17 08:53:26

TPS性能測試

2020-08-19 15:30:04

PHP網(wǎng)絡(luò)安全代碼

2009-10-20 11:58:16

信息化容災(zāi)備份

2020-11-05 10:20:54

前端編碼規(guī)范安全漏洞

2023-11-09 19:12:43

AIoTel視頻編碼

2019-10-29 16:10:55

死鎖Java并發(fā)

2023-08-28 16:22:06

2012-02-09 18:54:22

2015-09-15 10:04:24

高效數(shù)據(jù)中心施耐德電氣

2015-08-17 15:17:37

數(shù)據(jù)中心數(shù)據(jù)中心效率

2011-05-04 12:16:25

打印機耗材

2015-07-31 09:27:56

安全編碼代碼審計Python

2020-08-30 14:34:42

Java語言安全編碼web安全

2011-09-14 10:38:39

2015-03-04 11:13:03

DockerDocker編排工具Docker可擴展性

2010-08-30 12:08:05

點贊
收藏

51CTO技術(shù)棧公眾號