• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            coreBugZJ

            此 blog 已棄。

            程序員需要謹(jǐn)記的九大安全編碼規(guī)則 (轉(zhuǎn))

              歷史已經(jīng)證明,軟件設(shè)計(jì)的缺陷一直是導(dǎo)致其漏洞被利用的最主要的罪魁禍?zhǔn)住0踩珜<野l(fā)現(xiàn),多數(shù)漏洞源自常見軟件中相對(duì)有限的一些漏洞。軟件開發(fā)者和設(shè)計(jì)者應(yīng)當(dāng)嚴(yán)格檢查程序中的各種錯(cuò)誤,盡量在軟件部署之前就減少或清除其中的漏洞。


              下面列舉的這些方法會(huì)有助于開發(fā)人員提高編碼的安全性:


              一、注意編譯器警告

              程序員應(yīng)當(dāng)使用編譯器的最高警告等級(jí)。在編譯過程中,應(yīng)當(dāng)修改程序中的錯(cuò)誤,直到警告解除。應(yīng)當(dāng)使用靜態(tài)和動(dòng)態(tài)的分析工具來檢測(cè)和清除安全缺陷。


              二、根據(jù)安全策略設(shè)置軟件架構(gòu)

              設(shè)計(jì)者應(yīng)創(chuàng)建一個(gè)軟件架構(gòu),并在設(shè)計(jì)軟件的過程中實(shí)施和強(qiáng)化安全策略。例如,如果你的系統(tǒng)在不同的時(shí)間要求不同的特權(quán),就不妨考慮將系統(tǒng)分解成能夠互聯(lián)通信的不同的子系統(tǒng),每一個(gè)系統(tǒng)都有自己適當(dāng)?shù)奶貦?quán)。這種“分而治之”的方法可以有效地提高應(yīng)用程序的安全性。


              三、驗(yàn)證輸入

              程序設(shè)計(jì)者在設(shè)計(jì)程序時(shí)必須驗(yàn)證來自所有不可信數(shù)據(jù)源的輸入。適當(dāng)?shù)妮斎腧?yàn)證可以清除多數(shù)軟件漏洞。在設(shè)計(jì)程序時(shí),必須對(duì)多數(shù)外部的數(shù)據(jù)源抱著懷疑的態(tài)度,其中包括命令行參數(shù)、網(wǎng)絡(luò)接口、環(huán)境變量、用戶控制的文件等。


              四、保持程序簡(jiǎn)單

              設(shè)計(jì)者要盡量使程序短小精悍。復(fù)雜的設(shè)計(jì)會(huì)增加實(shí)施、配置、使用過程中出現(xiàn)錯(cuò)誤的可能性。程序越復(fù)雜,就需要越多的復(fù)雜的安全控制,企業(yè)需要付出的努力也就會(huì)越多。


              五、拒絕默認(rèn)訪問

              訪問決策的制定應(yīng)當(dāng)根據(jù)許可權(quán)限而不是根據(jù)其它的任何方面。這意味著,默認(rèn)情況下,應(yīng)當(dāng)拒絕訪問,程序的保護(hù)機(jī)制應(yīng)當(dāng)根據(jù)“允許誰訪問”來確認(rèn)訪問條件。


              六、遵循最小特權(quán)原則

              程序的每個(gè)處理過程在執(zhí)行時(shí),都應(yīng)當(dāng)僅使用為完成其工作而需要的最小特權(quán)。任何提升的許可權(quán)限都要盡量持續(xù)最短的時(shí)間。這種方法可以減少攻擊者用提升的特權(quán)執(zhí)行任意代碼的可能性。


              七、“凈化”傳送給其它系統(tǒng)的數(shù)據(jù)

              所謂“凈化”是指從用戶輸入的數(shù)據(jù)中清除惡意數(shù)據(jù),如清除用戶提交表單時(shí)的惡意的或錯(cuò)誤的字符。

              程序設(shè)計(jì)者必須對(duì)傳送到復(fù)雜的子系統(tǒng)(如命令外殼、關(guān)系型數(shù)據(jù)庫、購買的商業(yè)軟件組件)的所有數(shù)據(jù)進(jìn)行“凈化”。攻擊者有可能通過使用 SQL 注入命令或其它注入攻擊來調(diào)用這些組件中沒有被使用的功能。這未必是輸入驗(yàn)證問題,因?yàn)楸徽{(diào)用的復(fù)雜的子系統(tǒng)并不理解調(diào)用過程中的前后關(guān)系。由于調(diào)用程序理解前后關(guān)系,所以我們要在調(diào)用子系統(tǒng)之前對(duì)數(shù)據(jù)進(jìn)行“凈化”。


              八、實(shí)施深度防御

              程序設(shè)計(jì)必須能夠利用多種防御策略來管理風(fēng)險(xiǎn)。只有這樣,才能在一層防御不夠用或失效時(shí),另外一層防御可以防止將安全設(shè)計(jì)上的缺陷變成可被利用的漏洞,從而可以限制攻擊者利用漏洞的后果。例如,將安全編程技術(shù)與安全運(yùn)行環(huán)境結(jié)合起來,可以減少在部署階段殘存在代碼中的漏洞被攻擊者在操作環(huán)境中利用的可能性。


              九、使用有效的質(zhì)量保證技術(shù)

              良好的質(zhì)量保證技術(shù)可以有效地確認(rèn)和清除漏洞。模糊測(cè)試、滲透測(cè)試、源代碼審計(jì)等都可以結(jié)合起來使用,以此作為一個(gè)有效的質(zhì)量保證項(xiàng)目的一部分。獨(dú)立的安全檢查可以使系統(tǒng)更安全。有資質(zhì)的外部審查人員可以提供獨(dú)立的觀點(diǎn),例如,外部人員有助于確認(rèn)和糾正一些錯(cuò)誤的設(shè)想。

              當(dāng)然,為保證代碼的安全,企業(yè)應(yīng)當(dāng)為開發(fā)語言和平臺(tái)制定并實(shí)施一套健全的編碼標(biāo)準(zhǔn)。

            posted on 2012-04-02 16:43 coreBugZJ 閱讀(266) 評(píng)論(0)  編輯 收藏 引用 所屬分類: Software

            久久精品国产精品青草app| 久久精品免费全国观看国产| 一本久久a久久精品综合夜夜| 狠狠色综合久久久久尤物| 久久热这里只有精品在线观看| 久久精品国产亚洲AV高清热| 久久中文字幕视频、最近更新| 久久精品国产清高在天天线| 欧美色综合久久久久久| 国产精品99精品久久免费| 亚洲精品97久久中文字幕无码| 久久精品www人人爽人人| 亚洲乱码日产精品a级毛片久久| 精品国产VA久久久久久久冰| 大香伊人久久精品一区二区| 亚洲国产精品久久久久婷婷老年| 亚洲乱码中文字幕久久孕妇黑人| 久久精品无码一区二区三区免费| 久久综合给合久久国产免费| 亚洲性久久久影院| 国产99久久九九精品无码| 91精品国产9l久久久久| 亚洲欧洲日产国码无码久久99| 久久免费观看视频| 久久国产成人| 99久久婷婷国产一区二区| 国产午夜精品久久久久免费视 | 九九久久99综合一区二区| 久久精品国产色蜜蜜麻豆| 久久精品视频91| 久久国产热这里只有精品| 亚洲精品高清久久| 日韩一区二区久久久久久| 99国产欧美久久久精品蜜芽| 69SEX久久精品国产麻豆| 精品国产VA久久久久久久冰| 久久久亚洲欧洲日产国码二区| 色8久久人人97超碰香蕉987| 亚洲国产精品无码久久久蜜芽| 香蕉久久夜色精品升级完成| 蜜臀av性久久久久蜜臀aⅴ|