freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

cc語言安全編程規(guī)范v10-展示頁

2025-04-23 10:44本頁面
  

【正文】 { char dst[128]。2 字符串操作安全:確保有足夠的空間存儲(chǔ)字符串的字符數(shù)據(jù)和’\0’結(jié)束符說明:在分配內(nèi)存或者在執(zhí)行字符串復(fù)制操作時(shí),除了要保證足夠的空間可以容納字符數(shù)據(jù),還要預(yù)留’\0’結(jié)束符的空間,否則會(huì)造成緩沖區(qū)溢出。:刪除或修改沒有使用到的變量或值說明:刪除或修改沒有使用到的變量或值。:刪除或修改沒有效果的代碼說明:刪除或修改一些即使執(zhí)行后、也不會(huì)有任何效果的代碼。當(dāng)權(quán)限功能位置為0時(shí),setuid(getuid())沒有如預(yù)期的那樣撤銷權(quán)限成功。正是由于權(quán)限行為的復(fù)雜性,所以所需的權(quán)限在撤銷時(shí)可能會(huì)失敗。在BSD中意味著有效地用戶ID(EUID)為0或者uid=geteuid()。(2) 完成權(quán)限撤銷操作后,應(yīng)確保權(quán)限撤銷成功:不同平臺(tái)下所謂的“適當(dāng)?shù)臋?quán)限”的意義是不相同的。在進(jìn)行這樣的操作時(shí),要保證撤銷順序的正確性。過高的權(quán)限可能會(huì)被攻擊者利用并進(jìn)行進(jìn)一步的攻擊。例如,一個(gè)網(wǎng)絡(luò)程序可能需要超級(jí)用戶權(quán)限來捕獲原始網(wǎng)絡(luò)數(shù)據(jù)包,但是在執(zhí)行數(shù)據(jù)報(bào)分析等其它任務(wù)時(shí),則可能不需要相同的權(quán)限。基于哈希算法的口令安全存儲(chǔ)必須加入鹽值(salt)。加密算法分為對(duì)稱加密算法和非對(duì)稱加密算法??蓮?fù)用資源包括以下幾個(gè)方面:l 堆(heap)l 棧(stack)l 數(shù)據(jù)段(data segment)l 數(shù)據(jù)庫的映射緩存存儲(chǔ)口令、密鑰的變量使用完后必須顯式覆蓋或清空。:及時(shí)清除存儲(chǔ)在可復(fù)用資源中的敏感信息說明:存儲(chǔ)在可復(fù)用資源中的敏感信息如果沒有正確的清除則很有可能被低權(quán)限用戶或者攻擊者所獲取和利用。:禁止在日志中保存口令、密鑰說明:在日志中不能保存口令和密鑰,其中的口令包括明文口令和密文口令。“白名單”比“黑名單”更受推薦的原因是,程序員不必花力氣去捕捉所有不可接受的字符,只需確保識(shí)別了可接受的字符就可以了。有效輸入值列表通常是一個(gè)可預(yù)知的、定義良好的集合,并且其大小易于管理。(4)輸入校驗(yàn)應(yīng)當(dāng)采用“白名單”形式:“黑名單”和“白名單”是進(jìn)行數(shù)據(jù)凈化的兩種途徑。(2)校驗(yàn)輸入數(shù)據(jù)的范圍:如果輸入數(shù)據(jù)是數(shù)值,必須校驗(yàn)數(shù)值的范圍是否正確,是否合法、在有效值域內(nèi),例如在涉及到內(nèi)存分配、數(shù)組操作、循環(huán)條件、計(jì)算等安全操作時(shí),若沒有進(jìn)行輸入數(shù)值有效值域的校驗(yàn),則可能會(huì)造成內(nèi)存分配失敗、數(shù)組越界、循環(huán)異常、計(jì)算錯(cuò)誤等問題,這可能會(huì)被攻擊者利用并進(jìn)行進(jìn)一步的攻擊。1 通用原則:對(duì)外部輸入進(jìn)行校驗(yàn)說明:對(duì)于外部輸入(包括用戶輸入、外部接口輸入、配置文件、網(wǎng)絡(luò)數(shù)據(jù)和環(huán)境變量等)可能用于以下場(chǎng)景的情況下,需要檢驗(yàn)入?yún)⒌暮戏ㄐ裕簂 輸入會(huì)改變系統(tǒng)狀態(tài)l 輸入作為循環(huán)條件l 輸入作為數(shù)組下標(biāo)l 輸入作為內(nèi)存分配的尺寸參數(shù)l 輸入作為格式化字符串l 輸入作為業(yè)務(wù)數(shù)據(jù)(如作為命令執(zhí)行參數(shù)、拼裝sql語句、以特定格式持久化)l 輸入影響代碼邏輯這些情況下如果不對(duì)用戶數(shù)據(jù)作合法性驗(yàn)證,很可能導(dǎo)致DoS、內(nèi)存越界、格式化字符串漏洞、命令注入、SQL注入、緩沖區(qū)溢出、數(shù)據(jù)破壞等問題。推薦做法:對(duì)此原則/規(guī)則/建議從正面給出例子。說明:對(duì)此原則/規(guī)則/建議進(jìn)行必要的解釋。規(guī)則:編程時(shí)必須遵守的約定。 適用范圍本規(guī)范適合于公司基于C或C++語言開發(fā)的產(chǎn)品。以期減少緩沖區(qū)溢出、整數(shù)溢出、格式化字符串攻擊、命令注入攻擊、目錄遍歷等典型安全問題?!禖amp。產(chǎn)品安全涉及需求、設(shè)計(jì)、實(shí)現(xiàn)、部署多個(gè)環(huán)節(jié),實(shí)現(xiàn)的安全是產(chǎn)品安全的重要一環(huán)。C++語言安全編程規(guī)范0 規(guī)范制定說明 前言隨著公司業(yè)務(wù)發(fā)展,越來越多的產(chǎn)品被公眾、互聯(lián)網(wǎng)所熟知,并成為安全研究組織的研究對(duì)象、黑客的漏洞挖掘目標(biāo),容易引起安全問題。C++語言安全編程規(guī)范 1Camp。C++語言安全編程規(guī)范2013年05月07日發(fā)布 2013年05月07日實(shí)施華為技術(shù)有限公司Huawei Technologies Co., Ltd.版權(quán)所有 侵權(quán)必究修訂聲明本規(guī)范擬制與解釋部門: 網(wǎng)絡(luò)安全技術(shù)能力中心本規(guī)范的相關(guān)系列規(guī)范或文件: 《Java語言安全編程規(guī)范》《Web應(yīng)用安全開發(fā)規(guī)范》相關(guān)國際規(guī)范或文件一致性: 無替代或作廢的其它規(guī)范或文件: 無相關(guān)規(guī)范或文件的相互關(guān)系:本規(guī)范作為《C語言編程規(guī)范》和《C++語言編程規(guī)范》安全性要求的補(bǔ)充和擴(kuò)展。Camp。C++語言安全編程規(guī)范內(nèi)部公開華為技術(shù)有限公司內(nèi)部技術(shù)規(guī)范DKBA Camp。規(guī)范號(hào)主要起草部門專家主要評(píng)審部門專家修訂情況網(wǎng)絡(luò)安全能力中心:羅東 6710 于鵬 9000679苗宏 9000673朱喜紅 00210657電信軟件與核心網(wǎng):陳輝軍 00190784無線產(chǎn)品線:肖飛龍 00051938網(wǎng)絡(luò)產(chǎn)品線:魏建雄 00222905IT產(chǎn)品線:熊華梁00106214中央軟件院:朱楚毅 0021754林水平 0010983周強(qiáng) 0004836辛威 0017618鞠章蕾 0004095謝青 00101378中央硬件院:劉永合 00222758終端公司:楊棋斌 00060469企業(yè)網(wǎng)絡(luò):黃凱進(jìn) 0004028企業(yè)SecoSpace:王瑾 90003828中央軟件院:黃茂青 0005707盧峰 00210300網(wǎng)絡(luò)產(chǎn)品線:李強(qiáng) 002030羅天 0006228廖永強(qiáng) 0011121任志清 0004895李海蛟 0004082陳璟 0022287勾國凱 0004889范佳甲 00109753中央硬件院:劉崇山 0015999施文超 00109740企業(yè)網(wǎng)絡(luò):李有永 90002701IT產(chǎn)品線:李顯才 0004463何昌軍 00061280能力中心:郭曙光 00121837網(wǎng)絡(luò)安全實(shí)驗(yàn)室:林結(jié)斌 00206214電信軟件與核心網(wǎng):朱剛 00192988無線產(chǎn)品線:李瀛 0013053王愛成 0022300楊彬 0006594于繼萬 0005214解然 00234688 目 錄 Camp。C++語言安全編程規(guī)范 60 規(guī)范制定說明 6 前言 6 使用對(duì)象 6 適用范圍 6 術(shù)語定義 61 通用原則 7:對(duì)外部輸入進(jìn)行校驗(yàn) 7:禁止在日志中保存口令、密鑰 8:及時(shí)清除存儲(chǔ)在可復(fù)用資源中的敏感信息 8:正確使用經(jīng)過驗(yàn)證的安全的標(biāo)準(zhǔn)加密算法 8:遵循最小權(quán)限原則 9:刪除或修改沒有效果的代碼 9:刪除或修改沒有使用到的變量或值 92 字符串操作安全 10:確保有足夠的空間存儲(chǔ)字符串的字符數(shù)據(jù)和’\0’結(jié)束符 10:字符串操作過程中確保字符串有’\0’結(jié)束符 11:把數(shù)據(jù)復(fù)制到固定長度的內(nèi)存前必須檢查邊界 13:避免字符串/內(nèi)存操作函數(shù)的源指針和目標(biāo)指針指向內(nèi)存重疊區(qū) 133 格式化輸出安全 15:格式化輸出函數(shù)的格式化參數(shù)和實(shí)參類型必須匹配 15:格式化輸出函數(shù)的格式化參數(shù)和實(shí)參個(gè)數(shù)必須匹配 17:禁止以用戶輸入來構(gòu)造格式化字符串 17:使用格式化函數(shù)時(shí)推薦使用精度說明符 184 整數(shù)安全 19:確保無符號(hào)整數(shù)運(yùn)算時(shí)不會(huì)出現(xiàn)反轉(zhuǎn) 19:確保有符號(hào)整數(shù)運(yùn)算時(shí)不會(huì)出現(xiàn)溢出 20:確保整型轉(zhuǎn)換時(shí)不會(huì)出現(xiàn)截?cái)噱e(cuò)誤 21:確保整型轉(zhuǎn)換時(shí)不會(huì)出現(xiàn)符號(hào)錯(cuò)誤 22:把整型表達(dá)式比較或賦值為一種更大類型之前必須用這種更大類型對(duì)它進(jìn)行求值 23:避免對(duì)有符號(hào)整數(shù)進(jìn)行位操作符運(yùn)算 235 內(nèi)存管理安全 24:禁止引用未初始化的內(nèi)存 24:禁止訪問已經(jīng)釋放的內(nèi)存 25:禁止重復(fù)釋放內(nèi)存 27:必須對(duì)指定申請(qǐng)內(nèi)存大小的整數(shù)值進(jìn)行合法性校驗(yàn) 27:禁止釋放非動(dòng)態(tài)申請(qǐng)的內(nèi)存 29:避免使用alloca函數(shù)申請(qǐng)內(nèi)存 296 禁用不安全函數(shù)或?qū)ο?30:禁止使用未顯式指明目標(biāo)緩沖區(qū)大小的字符串操作函數(shù) 30:禁止調(diào)用OS命令解析器執(zhí)行命令或運(yùn)行程序,防止命令注入 32:禁止使用std::ostrstream,推薦使用std::ostringstream 33:C++中,必須使用C++標(biāo)準(zhǔn)庫替代C的字符串操作函數(shù) 337 文件輸入/輸出安全 35:必須使用int類型來接收字符輸入/輸出函數(shù)的返回值 35:創(chuàng)建文件時(shí)必須顯式指定合適的文件訪問權(quán)限 36:文件路徑驗(yàn)證前,必須對(duì)其進(jìn)行標(biāo)準(zhǔn)化 36:訪問文件時(shí)盡量使用文件描述符代替文件名作為輸入,以避免競爭條件問題 378 STL庫安全 38:引用容器前后元素時(shí)要確保容器元素存在 38:迭代子使用前必須保證迭代子有效 39:必須確保迭代子指向的內(nèi)容有效 40:正確處理容器的erase()方法與迭代子的關(guān)系 419 C++類和對(duì)象安全 42:禁止切分多態(tài)的類對(duì)象 42:禁止定義基類析構(gòu)函數(shù)為非虛函數(shù),所有可能被繼承類的析構(gòu)函數(shù)都必須定義為virtual 44:避免出現(xiàn)delete this操作 46:禁止在類的公共接口中返回類的私有數(shù)據(jù)地址 48:重載后綴操作符應(yīng)返回const類型 49:顯式聲明的模板類應(yīng)進(jìn)行類型特化 5010 其它 51:禁止使用rand()產(chǎn)生用于安全用途的偽隨機(jī)數(shù) 51:禁止存儲(chǔ)getenv()返回的字符串指針 55:多線程環(huán)境下,禁止使用可能會(huì)導(dǎo)致crash的不安全函數(shù) 56:編譯時(shí)應(yīng)當(dāng)使用編譯器的最高警告等級(jí) 60:防止處理敏感數(shù)據(jù)的代碼因被編譯器優(yōu)化而失效 6011 參考資料 62 Camp。安全問題影響的不只是單個(gè)產(chǎn)品,甚至有可能影響到公司整體聲譽(yù)。為了幫助產(chǎn)品開發(fā)團(tuán)隊(duì)編寫安全的代碼,減少甚至規(guī)避由于編碼錯(cuò)誤引入安全風(fēng)險(xiǎn),特制定本規(guī)范。C++語言安全編程規(guī)范》參考業(yè)界安全編碼的研究成果,并結(jié)合產(chǎn)品編碼實(shí)踐的經(jīng)驗(yàn)總結(jié),針對(duì)C/C++語言編程中的字符串操作、整數(shù)操作、內(nèi)存管理、文件操作、STL庫使用等方面,描述可能導(dǎo)致安全漏洞或潛在風(fēng)險(xiǎn)的常見錯(cuò)誤。 使用對(duì)象本規(guī)范的讀者及使用對(duì)象主要為使用C和C++語言的開發(fā)人員、測(cè)試人員等。 術(shù)語定義原則: 編程時(shí)必須遵守的指導(dǎo)思想。建議:編程時(shí)必須加以考慮的約定。錯(cuò)誤示例:對(duì)此原則/規(guī)則/建議從反面給出例子。延伸閱讀材料:建議進(jìn)一步閱讀的參考材料。對(duì)外部輸入驗(yàn)證常見有如下幾種方式:(1)校驗(yàn)輸入數(shù)據(jù)長度:如果輸入數(shù)據(jù)是字符串,通過校驗(yàn)輸入數(shù)據(jù)的長度可以加大攻擊者實(shí)施攻擊的難度,從而防止緩沖區(qū)溢出、惡意代碼注入等漏洞。(3)輸入驗(yàn)證前,對(duì)數(shù)據(jù)進(jìn)行歸一化處理以防止字符轉(zhuǎn)義繞過校驗(yàn):通過對(duì)輸入數(shù)據(jù)進(jìn)行歸一化處理(規(guī)范化,按照常用字符進(jìn)行編碼),徹底去除元字符,可以防止字符轉(zhuǎn)義繞過相應(yīng)的校驗(yàn)而引起的安全漏洞?!昂诿麊巍眹L試排斥無效的輸入,而“白名單”則通過定義一個(gè)可接受的字符列表,并移除任何不接受的字符來僅僅接受有效的輸入?!鞍酌麊巍钡暮锰幵谟?,程序員可以確定一個(gè)字符串中僅僅包含他認(rèn)為安全的字符。這樣一來,程序員就不用絞盡腦汁去考慮攻擊者可能嘗試哪些字符來繞過檢查。對(duì)于敏感信息建議采取以下方法,l 不打印在日志中;l 若因?yàn)樘厥庠虮仨氁蛴∪罩?,則用“*”代替。因此敏感信息在可復(fù)用資源中保存應(yīng)該遵循存儲(chǔ)時(shí)間最短原則。:正確使用經(jīng)過驗(yàn)證的安全的標(biāo)準(zhǔn)加密算法說明:禁用私有算法或者弱加密算法(如DES,SHA1等),應(yīng)該使用經(jīng)過驗(yàn)證的、安全的、公開的加密算法。推薦使用的常用對(duì)稱加密算法有:l AES推薦使用的常用非對(duì)稱算法有:l RSAl 數(shù)字簽名算法(DSA)此外還有驗(yàn)證消息完整性的安全哈希算法(SHA256)等。密鑰長度符合最低安全要求:l AES: 128位l RSA: 2048位l DSA: 1024位l SHA: 256位:遵循最小權(quán)限原則說明:程序在運(yùn)行時(shí)可能需要不同的權(quán)限,但對(duì)于某一種權(quán)限不需要始終保留。因此程序在運(yùn)行時(shí)只分配能完成其任務(wù)的最小權(quán)限。(1)撤銷權(quán)限時(shí)應(yīng)遵循正確的撤銷順序:在涉及到setuserID和setgroupID程序中,當(dāng)有效的用戶ID(user ID)和組ID(group ID)與真實(shí)的用戶不同時(shí),不但要撤銷用戶層面(user level)的權(quán)限而且要撤銷組層面(group level)的權(quán)限。權(quán)限撤銷順序的不正確操作,可能會(huì)被攻擊者獲得過高的權(quán)限而進(jìn)行進(jìn)一步的攻擊。例如在Solaris中,setuid()的適當(dāng)?shù)臋?quán)限指的是PRIV_PROC_SETID權(quán)限在進(jìn)程的有效權(quán)限集中。而在Linux中,則是指進(jìn)程具有CAP_SETUID能力并且當(dāng)EUID不等于0、真正的用戶ID(RUID)或者已保存的setuser ID(SSUID)中任何一個(gè)時(shí),setuid(geteuid())是失敗的。這會(huì)被攻擊者利用并進(jìn)行進(jìn)一步的攻擊。因此在進(jìn)行權(quán)限撤銷操作后,應(yīng)該校驗(yàn)以保證權(quán)限撤銷成功。一些存在的代碼(聲明或表達(dá)式),即使它被執(zhí)行后,也不會(huì)對(duì)代碼的結(jié)果或數(shù)據(jù)的狀態(tài)產(chǎn)生任何的影響,或者產(chǎn)生不是所預(yù)期的效果,這樣的代碼在可能是由于編碼錯(cuò)誤引起的,往往隱藏著邏輯上的錯(cuò)誤。一些變量或值存在于代碼里,但并沒有被使用到,這可能隱含著邏輯上的錯(cuò)誤,需要被識(shí)別出來,刪除這類語句或做相應(yīng)的修改。錯(cuò)誤示例1:拷貝字符串時(shí),源字符串長度可能大于目標(biāo)數(shù)組空間。 if ( argc 1 ) { strcpy(dst, argv[1])。void main(int argc, char *argv[]){ char *dst = NULL。 /* 【修改】確保字符串空間足夠容納argv[1] */ if( dst != NULL ) { strncpy(dst, argv[1], strlen(a
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1