發(fā)布時間:2020-08-04
現(xiàn)在的軟件系統(tǒng)越來越多,這個行業(yè)的發(fā)展是非??焖俚模a的數(shù)量越來越多,系統(tǒng)的復(fù)雜程度也是在快速的增長。而且軟件開發(fā)的編程語言也從使用單一的語言發(fā)展為多種語言協(xié)同開發(fā)。這樣使測試的難度也在逐漸的增高。今天我們就先來簡單的了解一下靜態(tài)代碼分析和代碼審計。
靜態(tài)代碼分析是指在不實際執(zhí)行程序的情況下,對代碼語義和行為進行分析,由此找出程序中由于錯誤的編碼導(dǎo)致異常的程序語義或未定義的行為。通俗的說,靜態(tài)代碼分析就是在代碼編寫的同時就能找出代碼的編碼錯誤。你不需要等待所有代碼編寫完畢,也不需要構(gòu)建運行環(huán)境,編寫測試用例。它能在軟件開發(fā)流程早期就發(fā)現(xiàn)代碼中的各種問題,從而提高開發(fā)效率和軟件質(zhì)量。
代碼審計
代碼審計(Code audit)就是檢查源代碼中的安全缺陷,檢查程序源代碼是否存在安全隱患,或者有編碼不規(guī)范的地方,通過自動化工具或者人工審查的方式,對程序源代碼逐條進行檢查和分析,發(fā)現(xiàn)這些源代碼缺陷引發(fā)的安全漏洞,并提供代碼修訂措施和建議。
代碼審計是一種以發(fā)現(xiàn)程序錯誤,安全漏洞和違反程序規(guī)范為目標(biāo)的源代碼分析。軟件代碼審計是對編程項目中源代碼的全面分析,旨在發(fā)現(xiàn)錯誤,安全漏洞或違反編程約定。 它是防御性編程范例的一個組成部分,它試圖在軟件發(fā)布之前減少錯誤。
通過閱讀一份源碼,對其進行各類漏洞挖掘,這樣的過程便統(tǒng)稱為審計。在審計中,你不但需要知道各類漏洞的原理,還需要良好的審計環(huán)境。在面對大型開源程序時,信息量往往十分巨大,所以工具的分析和檢索是必不可少的。
隨著PHP被廣泛使用,PHP的安全問題越來越被關(guān)注。而最常見的搭配就是PHP+MySQL,接下來我們探討一下PHP審計中MySQL注入的挖掘。
1、注入的原理
顧名思義,SQL注入就是通過把SQL命令插入到Web表單提交、輸入域名或頁面請求的查詢字符串,最終達到欺騙服務(wù)器執(zhí)行惡意的SQL命令的目的。SQL注入是當(dāng)今網(wǎng)絡(luò)上最普遍的一種攻擊方法。
2、常見的注入
在審計中,最常出現(xiàn)的注入便是GET注入、POST注入和Cookie注入。而POST注入也是最容易被忽略的,有時可能因為傳遞的參數(shù)較多,常常忽略某個參數(shù)的過濾,從而導(dǎo)致了注入。在實際開發(fā)中,往往有的開發(fā)人員使用了REQUEST傳參,卻只對GET進行了過濾,因此可以換一種方式提交數(shù)據(jù)進行注入
3、http頭注入
http客戶程序向服務(wù)器發(fā)送請求的時候必須指明請求類型,從而產(chǎn)生了http頭。常見的http頭如下所述。
Host:初始URL中的主機和端口。
Referer:包含一個URL,用戶從該URL代表的頁面出發(fā)訪問當(dāng)前請求的頁面。
User-Agent:瀏覽器類型。
Accept:瀏覽器可接收的MIME類型。
Accept-Language:瀏覽器所希望的語言種類。
Connection:表示是否需要持久連接。
Content-Length:表示請求消息正文的長度。
Cookie:這是最重要的請求頭信息之一。
4、二次注入
隨著安全問題日趨被重視,一些簡單的SQL注入在大中型開源程序中已基本銷聲匿跡了。而出現(xiàn)更多的則是二次注入,相對于一次注入漏洞而言,二次注入漏洞更難以被發(fā)現(xiàn),但是它卻具有與一次注入攻擊漏洞相同的攻擊威力。
關(guān)于靜態(tài)代碼分析和代碼審計的一些內(nèi)容就是這樣了,在本文的最后,小編給大家推薦一個簡單又好用的代碼審計工具,CodeAnalyzer(簡稱CA)是一個專業(yè)代碼質(zhì)量管理的代碼審查軟件,用于實現(xiàn)靜態(tài)分析、代碼走查、代碼規(guī)范檢查以及代碼潛在錯誤分析的白盒測試工具,它是一種脫離編譯器的代碼靜態(tài)分析軟件產(chǎn)品。
推薦閱讀:
電話咨詢,400-035-7887,安排專業(yè)技術(shù)售前給您解答(產(chǎn)品試用、技術(shù)交流、服務(wù)咨詢和商務(wù)報價)。
您的信息已成功提交!
我們的客服人員稍后會與您聯(lián)系