下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、.代碼安全編寫規(guī)范1. 安全編碼 1.1. 通用編碼原則(一) 不要信任外部的用戶輸入或系統(tǒng)。應用程序應該徹底驗證所有用戶輸入,然后再根據(jù)用戶輸入執(zhí)行操作。驗證可能包括篩選特殊字符。針對用戶意外地錯誤使用和某些人通過在系統(tǒng)中注入惡意命令蓄意進行攻擊的情況,這種預防性措施對應用程序起到了保護作用。常見的例子包括 SQL 注入攻擊、腳本注入和緩沖區(qū)溢出。此外,對于任何非受控的外部系統(tǒng),都不要假定其安全性。(二) 不要通過隱藏來保障安全。嘗試使用讓人迷惑的變量名來隱藏機密信息或將它們存儲在不常用的文件位置,這些方法都不能提供安全保障,最好使用平臺功能或使用已被證實可行的技術來保護數(shù)據(jù)。(三) 以安全
2、的方式處理失效如果應用程序失效(如發(fā)生嚴重錯誤等),要恰當?shù)倪M行處理,一定要保護好機密數(shù)據(jù)。同時,在向最終用戶返回錯誤消息時,不要公開任何不需要公開的信息。也就是不要提供任何有助于攻擊者發(fā)現(xiàn)應用程序漏洞的詳細信息。 1.2. 防范常見安全編碼問題在實現(xiàn)應用軟件的編碼階段,也較容易因缺乏嚴謹思考或不好的編程習慣而引入安全問題,而且這些安全問題產生的危害作用非常大,因其產生的漏洞常常會造成應用程序中其他部分構筑的安全控制措施完全失效.目前存在的相當數(shù)量系統(tǒng)漏洞都是由編碼問題造成的.因此要想保證應用軟件的安全性,必須在編碼階段繼續(xù)高度貫徹安全性原則. 在編碼階段,避免安全問題的基本原則如下: 程序只
3、實現(xiàn)指定的功能 永遠不要信任用戶輸入,對用戶輸入數(shù)據(jù)做有效性檢查 必須考慮意外情況并進行處理 不要試圖在發(fā)現(xiàn)錯誤之后繼續(xù)執(zhí)行 盡可能使用安全函數(shù)進行編程 小心、認真、細致地編程目前在各種應用軟件中常見的安全漏洞如下所示,應對這些常見問題進行有針對性的防范。 1.2.1 緩沖區(qū)溢出如果對輸入參數(shù)(字符串、整數(shù)等)處理時長度檢查不嚴格,或對指針和數(shù)組越界訪問不進行保護,就容易產生緩沖區(qū)溢出(Buffer Overflow)問題,這種問題主要出現(xiàn)在主要出現(xiàn)在 C/C+ 語言編寫的系統(tǒng)中,它造成的漏洞是當今絕大多數(shù)安全漏洞的主要根源。在 Java / .NET 等利用虛擬機的(托管)平臺上不會產生此問
4、題。要避免此問題,則必須對系統(tǒng)輸入數(shù)據(jù)進行嚴格的長度檢查,廢棄或截斷超長的越界數(shù)據(jù),同時利用基礎庫函數(shù)中的一些更為安全的字符串處理函數(shù)來處理數(shù)據(jù),也可以利用編譯器或代碼復查工具提供的檢查功能來盡早發(fā)現(xiàn)可能會產生問題的程序。 1.2.2 輸入非法數(shù)據(jù)惡意的攻擊者會嘗試在用戶界面或接口中向系統(tǒng)輸入惡意數(shù)據(jù),以便期望繞過系統(tǒng)的安全限制,致使系統(tǒng)出甚至崩潰或其他非法目的,因此在編碼時,須要對所有輸入數(shù)據(jù) (包括用戶在界面中輸入的數(shù)據(jù)和其他應用系統(tǒng)通過接口傳遞的數(shù)據(jù))進行嚴格的合法性檢查。 1.2.3 SQL 注入式攻擊 SQL 注入式(SQL Injection)攻擊是一種典型的,因對輸入數(shù)據(jù)不當處理
5、而產生的非常嚴重的安全漏洞。其原因是基于數(shù)據(jù)庫的應用程序中經常會使用動態(tài) SQL 語句,而且在程序又沒有對輸入數(shù)據(jù)嚴格檢查,致使攻擊者能在界面層或接口層注入非法的 SQL 語句,從而非法訪問和破壞數(shù)據(jù)、反向工程、甚至對服務器本身造成威脅。對于攻擊者來說,SQL注入式攻擊是一種簡單有效的攻擊方式,也是首選方式,尤其是在基于 Web的應用程序中,因此開發(fā)人員必須重點關注此問題。預防 SQL注入式攻擊的手段就是嚴格檢查用戶輸入的數(shù)據(jù),要使用基礎系統(tǒng)提供的參數(shù)化查詢接口,避免使用字符串來構造動態(tài) SQL查詢。同時對于數(shù)據(jù)庫對象的訪問權限進行嚴格限制,避免惡意 SQL語句破壞數(shù)據(jù)或系統(tǒng)。 1.2.4 拒
6、絕服務攻擊拒絕服務攻擊(Denial of Services -DoS)是指通過大量并發(fā)訪問,使得服務器的有限特定資源(如網絡、處理器、內存等)接近枯竭,使得服務器或操作系統(tǒng)失效的攻擊行為。 DoS攻擊的一般方式有發(fā)送大量數(shù)據(jù)包造成網絡阻塞、執(zhí)行內存泄漏代碼使得系統(tǒng)可用內存越來越少、執(zhí)行大量消耗 CPU處理能力的代碼、通過客戶端發(fā)送大量的 HTTP請求造成巨量 Web點擊以及 SYN Flood等。DoS 攻擊雖然不會直接對服務器本身帶來損壞,但它使得真正的合法用戶無法訪問系統(tǒng),從而可能帶來業(yè)務上的損失。除了 DoS之外,攻擊者還可能利用數(shù)量龐大的攻擊源發(fā)起 DDoS(Distributed DoS,分布式拒絕服務)攻擊,其破壞和危害作用更大。在編碼時要注意防范可能的 DoS攻擊,具體措施包括提高軟件行為的可管理性、主動拒絕異常連接、自動鎖定攻擊源、提供實時監(jiān)控界面,能夠有效甄別攻擊源、具有(異常)事件報警機制、具有審核日志等。通過這些主動或被動的防御手段,能夠將 DoS/DDoS攻擊行為帶來的破壞和危害降到較低水平。 1.2.5 敏感信息泄露攻擊者可能會通過暴力攻擊、偵聽、截取中間數(shù)據(jù)、反向工程、社會工程學(Social Engineering)等手段,獲取訪問憑據(jù)或機密信息,危及數(shù)據(jù)的私有性/安全性或者暴露敏感的商業(yè)數(shù)據(jù),如用戶名/口令、加密密鑰、數(shù)據(jù)庫連接串、商業(yè)敏
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 衛(wèi)生間清潔規(guī)章制度
- 衛(wèi)生院診室管理制度
- 一手房門店衛(wèi)生管理制度
- 衛(wèi)生院法治宣傳教育制度
- 衛(wèi)生院鼠疫疫情報告制度
- 小區(qū)衛(wèi)生站管理制度細則
- 清理衛(wèi)生間管理制度
- 學校安全衛(wèi)生制度
- 衛(wèi)生室補助公示制度
- 食堂更衣室衛(wèi)生管理制度
- 5年(2021-2025)高考1年模擬歷史真題分類匯編選擇題專題01 中國古代的政治制度演進(重慶專用)(原卷版)
- 浙教版初中科學復習課《杠桿與滑輪專題》共24張課件
- 機關單位普通密碼設備管理制度
- 支氣管哮喘防治指南(2024年版)解讀
- 【指導規(guī)則】央企控股上市公司ESG專項報告參考指標體系
- 土地管理學課件
- 村莊規(guī)劃搬遷方案
- 融資租賃實際利率計算表
- 民爆物品倉庫安全操作規(guī)程
- von frey絲K值表完整版
- 勾股定理復習導學案
評論
0/150
提交評論