999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于ASP.NET技術(shù)的安全網(wǎng)站設(shè)計(jì)

2007-01-01 00:00:00張海林杜忠友田學(xué)雷
商場(chǎng)現(xiàn)代化 2007年6期

[摘要] ASP.NET技術(shù)以其強(qiáng)大的功能在動(dòng)態(tài)網(wǎng)頁(yè)設(shè)計(jì)中得到廣泛應(yīng)用。由于ASP.NET本身的缺陷和程序員安全意識(shí)不強(qiáng),使得應(yīng)用ASP.NET技術(shù)的網(wǎng)站存在各種安全問題。本文結(jié)合ASP.NET網(wǎng)站的開發(fā)經(jīng)驗(yàn),討論了基于ASP.NET網(wǎng)站中常見的安全漏洞,并給出了相應(yīng)的防范策略。

[關(guān)鍵詞] ASP.NET攻擊安全防范

一、前言

Web服務(wù)應(yīng)用正在爆炸式增長(zhǎng),越來(lái)越多的應(yīng)用被推出到防火墻之外,安全性脆弱的Web應(yīng)用面臨的風(fēng)險(xiǎn)也有增無(wú)減。同時(shí),為了在緊迫的時(shí)限之前快速完成應(yīng)用開發(fā),開發(fā)者面臨的壓力越來(lái)越大。因此注重編寫代碼時(shí)的安全問題,同時(shí)投入必要的資源,才能為未來(lái)Web的安全應(yīng)用做好準(zhǔn)備。

二、ASP.NET程序設(shè)計(jì)安全性分析

1.信息隱藏設(shè)置

在ASP.NET應(yīng)用中,幾乎所有HTML頁(yè)面的__VIEWSTATE隱藏域中都可以找到有關(guān)應(yīng)用的信息。由于__VIEWSTATE是BASE64編碼的,所以常常被忽略,但攻擊者可以方便地解碼BASE64數(shù)據(jù),從而得到__VIEWSTATE中提供的詳細(xì)資料。

要解決這個(gè)問題,只需設(shè)置EnableViewStatMAC=”true”,啟用__VIEWSTATE數(shù)據(jù)加密功能。然后將machineKey驗(yàn)證類型設(shè)置成3DES,要求ASP.NET用Triple DES對(duì)稱加密算法加密ViewState數(shù)據(jù)。

2.用戶輸入的校驗(yàn)分析

在Web應(yīng)用開發(fā)中,開發(fā)者最大的失誤往往是無(wú)條件的信任用戶輸入、總是通過(guò)瀏覽器和服務(wù)器交互,從而打開了攻擊Web應(yīng)用的大門。

因此,只有嚴(yán)密地驗(yàn)證用戶輸入的合法性,才能有效抵抗入侵者的攻擊。應(yīng)用程序可以用多種方法執(zhí)行驗(yàn)證,例如,在認(rèn)可用戶輸入之前執(zhí)行驗(yàn)證,確保用戶的輸入中只包含合法的字符,并且所有輸入域的內(nèi)容長(zhǎng)度都沒有超過(guò)范圍。必要時(shí)不僅采取強(qiáng)制性的長(zhǎng)度限制策略,而且還可以對(duì)輸入內(nèi)容按照明確定義的特征集執(zhí)行驗(yàn)證。

應(yīng)在所有的需要通過(guò)網(wǎng)絡(luò)輸入的地方進(jìn)行驗(yàn)證,比如文本框和其他表單輸入字段,字符串查詢參數(shù)等。過(guò)濾策略應(yīng)該是只允許正確的輸入,拒絕非法輸入。這是因?yàn)槎x正確的輸入策略比過(guò)濾所有的非法輸入要容易得多。

要驗(yàn)證表單里面的HTML控件輸入字段,在服務(wù)器端代碼中可以使用Regex正則表達(dá)式類型進(jìn)行字符串的驗(yàn)證,ASP.NET中通過(guò)正則表達(dá)式驗(yàn)證控件(RegularExpresionValidator)實(shí)現(xiàn)。

3.跨站攻擊及防范

跨站腳本執(zhí)行是指將惡意的用戶輸入嵌入到應(yīng)答(HTML)頁(yè)面。例如,下面的ASP.NET頁(yè)面雖然簡(jiǎn)單,卻包含著一個(gè)重大的安全缺陷(陰影處代碼存在漏洞)。

<%@ Page Language=“vb” %>

<asp:Label id=“Label1”runat=“server”>標(biāo)簽文字</asp:Label>

<form method=“post”runat=“server”ID=“Form1”>

請(qǐng)?jiān)诖颂庉斎敕答佇畔ⅲ糱r>

<asp:Textbox ID=“feedback”runat=“server”/><br>

<asp:Button id=“cmdSubmit”runat=“server”

Text=“提交!”O(jiān)nClick=“do_feedback”>

</asp:Button>

</form>

<script runat=“server”>

Sub do_feedback(sender As Object, e As System.EventArgs)

Label1.Text=feedback.Text

End Sub

</script>

要糾正本例中的錯(cuò)誤,只要在下面代碼中加入一個(gè)HtmlEncode調(diào)用即可:

Label1.Text=Server.HtmlEncode(feedback.Text)

這樣,應(yīng)答HTML流將包含用戶輸入內(nèi)容的HTML編碼版本,瀏覽器就不會(huì)執(zhí)行用戶輸入的JavaScript代碼,從而保證代碼的安全。同理,如果需要獲取用戶輸入的URL參數(shù),應(yīng)使用HttpUtility.UrlEncode方法對(duì)地址字符串編碼。

HttpUtility.UrlEncode(urlString);

4.SQL注入攻擊及防范

(1)SQL注入攻擊原理。盲目信任用戶輸入是保障Web應(yīng)用安全的第一敵人。用戶輸入的主要來(lái)源是HTML表單中提交的參數(shù),如果不能嚴(yán)格地驗(yàn)證這些參數(shù)的合法性,就有可能危及服務(wù)器的安全。

下面的代碼查詢后臺(tái)SQL Server數(shù)據(jù)庫(kù),假設(shè)user和password變量的值直接取自用戶輸入:

SqlDataAdapter my_query = new SqlDataAdapter(

“SELECT * FROM accounts WHERE acc_user=”+ user +“ AND acc_password=”+ password, the_connection);

從表面上看,這幾行代碼毫無(wú)問題,實(shí)際上卻可能引來(lái)SQL注入式攻擊。攻擊者只要在user輸入域中輸入“OR 1=1”,就可以順利登錄系統(tǒng),或者只要在查詢之后加上適當(dāng)?shù)恼{(diào)用,就可以執(zhí)行任意Shell命令:

‘; EXEC master xp_cmdshell(shell command here)—‘

(2) SQL注入攻擊防范。要防止上述攻擊行為,有以下三種方法。

第一種方法是禁止引號(hào)之類的特殊字符輸入。

第二種方法是限定輸入域的內(nèi)容必須屬于某個(gè)合法字符的集合,例如“[a-zA-Z0-9]*”。

為了避免注入式攻擊請(qǐng)使用SQL的參數(shù)方式。如果使用參數(shù)集合,輸入的內(nèi)容將被當(dāng)作文本值來(lái)對(duì)待,數(shù)據(jù)庫(kù)不會(huì)執(zhí)行包含在其中的代碼。使用參數(shù)集方式可以嚴(yán)格限定輸入的類型和長(zhǎng)度。如果輸入型超出范圍將會(huì)觸發(fā)異常。

第三種方法是使用SQL參數(shù)API,讓編程環(huán)境的底層API來(lái)構(gòu)造查詢。

使用這些API時(shí),開發(fā)者或提供一個(gè)查詢模板,或提供一個(gè)過(guò)程,然后指定一系列的參數(shù)值,由底層API將參數(shù)值嵌入到查詢模板,然后將構(gòu)造出來(lái)的查詢提交給服務(wù)器執(zhí)行。這種辦法確保參數(shù)能夠正確嵌入。例如,系統(tǒng)將對(duì)引號(hào)進(jìn)行轉(zhuǎn)義處理,從根本上杜絕SQL注入攻擊的發(fā)生,同時(shí),在表單中引號(hào)仍是一個(gè)允許輸入的有效字符。

三、基于ASP.NET的網(wǎng)站安全性檢測(cè)

由于客戶需求不斷變化,員工流動(dòng)性強(qiáng),所以對(duì)開發(fā)者開發(fā)健壯、高質(zhì)量的代碼提出更高的要求。雖然對(duì)所有開發(fā)者進(jìn)行代碼安全技術(shù)的培訓(xùn)是必要的,但不可否認(rèn),自動(dòng)檢測(cè)代碼安全漏洞的工具對(duì)安全代碼設(shè)計(jì)也大有裨益。

到目前為止,開發(fā)者常用的工具只能涵蓋功能測(cè)試的特定方面,例如性能測(cè)試,故障點(diǎn)偵查。人工檢查代碼有著許多局限,而且要求開發(fā)者具有豐富的經(jīng)驗(yàn),所以對(duì)于編寫高質(zhì)量的web應(yīng)用來(lái)說(shuō),面向應(yīng)用程序安全的檢測(cè)工具(如Domain、HDSI、CSAI等)是十分關(guān)鍵的。

要迅速提高應(yīng)用的質(zhì)量和安全性,最有效的辦法是給開發(fā)者提供一個(gè)自動(dòng)測(cè)試應(yīng)用的工具。如果在單元測(cè)試期間,工具能夠檢測(cè)出應(yīng)用的安全缺陷,并將修補(bǔ)建議嵌入到代碼之中,開發(fā)者就能立即找出代碼中存在的錯(cuò)誤,這不僅方便了現(xiàn)有錯(cuò)誤的修改,而且也有助于避免將來(lái)再犯同樣的錯(cuò)誤,不斷地提高代碼抗攻擊的能力。

四、結(jié)論

在使用ASP.NET技術(shù)建站時(shí),包括上述安全漏洞在內(nèi)的一些代碼安全問題都可能出現(xiàn),因此需從服務(wù)器、程序員等方面加強(qiáng)安全防范。對(duì)服務(wù)器來(lái)說(shuō),要關(guān)掉所有用不到的網(wǎng)絡(luò)服務(wù),對(duì)提供網(wǎng)絡(luò)服務(wù)的軟件(如Apache、MySQL、iis等)經(jīng)常進(jìn)行更新,并檢查各自的程序日志以及時(shí)發(fā)現(xiàn)入侵現(xiàn)象。對(duì)程序員來(lái)說(shuō),書寫代碼時(shí)要注意嚴(yán)格過(guò)濾用戶的輸入數(shù)據(jù),并經(jīng)常使用工具對(duì)ASP.NET網(wǎng)站進(jìn)行安全檢測(cè)。

參考文獻(xiàn):

[1][美]Mark M. Burnett著良忠譯:拒絕黑客-ASP.NET Web應(yīng)用程序安全性剖析[M].北京:電子工業(yè)出版社, 2005年

[2]張郭軍:企業(yè)信息網(wǎng)絡(luò)系統(tǒng)安全技術(shù)分析. 商場(chǎng)現(xiàn)代化[J]. 2006, 4:35~36

[3]中國(guó)黑客聯(lián)盟, http://www.cnhacker.com

[4]華夏黑客同盟, http://77169.com

主站蜘蛛池模板: 91色综合综合热五月激情| 一级毛片免费高清视频| 亚洲无码在线午夜电影| a毛片免费观看| 亚洲AⅤ无码国产精品| 婷婷成人综合| 多人乱p欧美在线观看| 日韩精品亚洲一区中文字幕| 波多野结衣在线se| 色哟哟国产精品| 亚洲成人免费看| 亚洲精品老司机| 国产激情无码一区二区三区免费| 日韩福利在线观看| 波多野结衣第一页| 91久久精品日日躁夜夜躁欧美| 日韩美毛片| …亚洲 欧洲 另类 春色| 日本www在线视频| 色妞永久免费视频| 亚洲精品无码专区在线观看| 亚洲成AV人手机在线观看网站| 国产拍揄自揄精品视频网站| 免费人成在线观看成人片| 欧美综合区自拍亚洲综合天堂| 广东一级毛片| 亚洲精品制服丝袜二区| 国产精品自拍露脸视频| 国产呦精品一区二区三区网站| 国产成人91精品免费网址在线| 欧美区国产区| 久久情精品国产品免费| 久久精品女人天堂aaa| 免费国产福利| 超碰精品无码一区二区| 国产成人你懂的在线观看| 精品伊人久久久香线蕉| 欧美精品亚洲二区| 欧美精品在线免费| 人人爽人人爽人人片| 亚洲午夜福利在线| 国产精品久久精品| 欧美在线网| 操国产美女| 激情五月婷婷综合网| 亚洲第一页在线观看| 欧美日本在线| 亚洲国产中文欧美在线人成大黄瓜| 真人高潮娇喘嗯啊在线观看| 国产精品吹潮在线观看中文| 国产av一码二码三码无码 | 尤物精品视频一区二区三区| 亚洲熟女中文字幕男人总站 | 国产精品一区在线观看你懂的| 在线五月婷婷| 亚洲av无码人妻| 中文字幕亚洲精品2页| 婷婷在线网站| 国产精品白浆无码流出在线看| 人人妻人人澡人人爽欧美一区| 久久黄色小视频| 国产成a人片在线播放| 日韩专区欧美| 亚洲综合二区| 日本免费高清一区| 欧美一级在线播放| 超碰免费91| 国产一区三区二区中文在线| 亚洲欧洲日韩综合色天使| 伊人久久福利中文字幕| 国产精品国产主播在线观看| 91网址在线播放| 亚洲黄色成人| 99伊人精品| 久久网欧美| 国产精品亚洲一区二区在线观看| 中国国产一级毛片| 区国产精品搜索视频| 国产swag在线观看| 毛片基地美国正在播放亚洲| 亚瑟天堂久久一区二区影院| 日本91在线|