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