自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

軟件開(kāi)發(fā):安全編碼的九個(gè)最佳方法(三)

安全
程序員可以使用攻擊模式來(lái)確認(rèn)相關(guān)攻擊所針對(duì)的特定編碼缺陷,并確保這些缺陷不會(huì)出現(xiàn)在其代碼中。首先,程序員在考慮軟件的架構(gòu)和執(zhí)行環(huán)境后,需要決定哪些攻擊模式可行,哪些技術(shù)可用于實(shí)施攻擊該軟件。

充分利用攻擊模式

程序員可以使用攻擊模式來(lái)確認(rèn)相關(guān)攻擊所針對(duì)的特定編碼缺陷,并確保這些缺陷不會(huì)出現(xiàn)在其代碼中。首先,程序員在考慮軟件的架構(gòu)和執(zhí)行環(huán)境后,需要決定哪些攻擊模式可行,哪些技術(shù)可用于實(shí)施攻擊該軟件。例如,對(duì)于一個(gè)運(yùn)行在本地Linux上的C或 C++程序而言,緩沖區(qū)溢出攻擊模式就具備相關(guān)性,而對(duì)于一個(gè)運(yùn)行在.NET平臺(tái)上的C#程序而言,緩沖區(qū)溢出攻擊模式就與之無(wú)關(guān)。根據(jù)需要避免的攻擊模式,程序員應(yīng)當(dāng)決定哪些構(gòu)造不應(yīng)當(dāng)出現(xiàn)在其代碼中。

下面的例子展示了程序員如何利用攻擊模式:

攻擊模式:簡(jiǎn)單的腳本注入

用于:避免跨站腳本漏洞

此模式有可能針對(duì)的代碼部分:即將輸出的數(shù)據(jù)發(fā)送到一個(gè)來(lái)自不可信源的用戶的代碼部分。

如何保護(hù)代碼避免遭受攻擊模式:如果沒(méi)有提前采取相應(yīng)的反制措施(即,根據(jù)架構(gòu)師的決策,在服務(wù)器和客戶端之間的聯(lián)結(jié)處,包括一個(gè)自包含的輸入驗(yàn)證器/輸出過(guò)濾器),就應(yīng)當(dāng)實(shí)施類似于下面的反制措施:

1、將潛在的危險(xiǎn)字符轉(zhuǎn)換成其HTML的對(duì)等物,以防止客戶端顯示有可能包含非法數(shù)據(jù)或臆造數(shù)據(jù)的不可信輸出,如由攻擊者插入的<script>標(biāo)簽。這種轉(zhuǎn)換的例子包括“<”變成“<”,或者“>”變成“>”;自動(dòng)執(zhí)行這種轉(zhuǎn)換的第三方Java庫(kù);JavaScript的escape()函數(shù)也可以執(zhí)行類似的轉(zhuǎn)換。注意,需要謹(jǐn)慎管理這種轉(zhuǎn)換,以避免由更長(zhǎng)的字符串替換單個(gè)字符成造成的潛在的緩沖區(qū)溢出漏洞。

2、實(shí)施一種輸入驗(yàn)證過(guò)濾器,使其可以根據(jù)允許輸入的字符白名單對(duì)輸入進(jìn)行過(guò)濾。

實(shí)施加密和哈希

程序員需要加密敏感數(shù)據(jù)(例如,密碼和會(huì)話ID),尤其是在不受信任的渠道(如互聯(lián)網(wǎng))更要如此。無(wú)法保護(hù)敏感數(shù)據(jù)可能會(huì)導(dǎo)致攻擊(例如,會(huì)話劫持和跨站腳本攻擊),導(dǎo)致對(duì)應(yīng)用程序和數(shù)據(jù)的未授權(quán)訪問(wèn)。

加密功能在許多軟件中是一種重要的工具,這會(huì)確保保密性和完整性。有許多程序可以創(chuàng)建自己的加密功能,如果程序被破解,就會(huì)使軟件不安全。對(duì)程序員來(lái)說(shuō),沒(méi)有任何理由和借口允許加密功能發(fā)生故障,因?yàn)樗械闹髁髡Z(yǔ)言都有其安全的、經(jīng)審核的加密函數(shù)庫(kù)。使用這些庫(kù)比用戶自己開(kāi)發(fā)這些功能要簡(jiǎn)單得多。下面是關(guān)于算法的一些建議:

對(duì)Web應(yīng)用程序使用傳輸層安全(TLS);

不使用MD5和安全哈希算法(SHA-1),而應(yīng)當(dāng)使用SHA-256/512 and SHA-3哈希;

不要使用DES(數(shù)據(jù)加密標(biāo)準(zhǔn)),而應(yīng)使用AES(高級(jí)加密標(biāo)準(zhǔn))或Triple DES;

程序員所開(kāi)發(fā)的程序還應(yīng)當(dāng)允許在算法被破解時(shí),能夠輕易地切換到另一種哈希和加密算法。

在部署之前禁用調(diào)試工具

核心轉(zhuǎn)儲(chǔ)僅能夠在測(cè)試期間才可作為一種診斷工具使用。應(yīng)當(dāng)在部署應(yīng)用程序之前對(duì)應(yīng)用程序進(jìn)行配置,在應(yīng)用程序的實(shí)際使用期間如果發(fā)生故障,能夠關(guān)閉其生成核心轉(zhuǎn)儲(chǔ)的能力。在程序發(fā)生故障時(shí),不能使用核心轉(zhuǎn)儲(chǔ)功能,而應(yīng)該在程序退出之前,由“例外事件處理程序”來(lái)將適當(dāng)?shù)臄?shù)據(jù)發(fā)送到安全日志中。此外,如果有可能,應(yīng)當(dāng)將核心文件的大小配置為零(0)(例如,在UNIX中使用setrlimit或ulimit);這樣做可以進(jìn)一步防止生成核心文件。

顯然,上述所謂的九大最佳方法,并非程序員編制健壯軟件的靈丹妙藥,但是只要其遵循這些方法,就可以極大減少程序遭受攻擊或數(shù)據(jù)泄露的可能性。

責(zé)任編輯:Oo小孩兒 來(lái)源: TechTarget中國(guó)
相關(guān)推薦

2012-07-16 14:35:19

2010-08-30 12:08:05

2022-11-07 16:42:35

KPI軟件開(kāi)發(fā)團(tuán)隊(duì)

2023-06-09 19:01:03

軟件開(kāi)發(fā)

2024-11-07 12:14:36

2012-04-20 10:10:35

2023-11-06 08:55:31

2012-08-06 11:08:14

2013-03-01 09:53:40

軟件開(kāi)發(fā)

2023-06-08 16:47:09

軟件開(kāi)發(fā)工具

2016-09-28 19:26:31

2016-09-28 19:16:36

軟件開(kāi)發(fā)安全CISSPSDLC

2012-03-06 09:02:41

軟件開(kāi)發(fā)

2022-12-09 11:46:20

2024-09-23 15:02:40

2013-11-21 09:17:06

2015-09-24 16:09:45

軟件開(kāi)發(fā)項(xiàng)目原因

2024-02-23 11:13:35

2014-10-29 11:12:46

數(shù)據(jù)安全虹安

2012-12-18 09:24:18

軟件開(kāi)發(fā)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)