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

主站蜘蛛池模板: 亚洲综合天堂网| 久久99国产综合精品1| 中文字幕伦视频| 国产成人免费手机在线观看视频| a毛片免费看| 青青青草国产| 8090成人午夜精品| 国产精品久久精品| 97在线碰| 亚洲天堂日本| 免费播放毛片| 亚洲无码电影| 久久毛片网| 成人午夜免费视频| 人人妻人人澡人人爽欧美一区| 一级福利视频| 91无码国产视频| 免费看av在线网站网址| 免费视频在线2021入口| 国产香蕉在线视频| 欧美中文字幕一区| 色国产视频| 色婷婷色丁香| 亚洲精品卡2卡3卡4卡5卡区| 婷婷六月在线| 四虎永久在线视频| 99免费在线观看视频| 欧洲av毛片| 日韩国产 在线| 呦女亚洲一区精品| 精品黑人一区二区三区| 婷婷色婷婷| 欧日韩在线不卡视频| 亚洲成在人线av品善网好看| 自慰网址在线观看| 在线观看av永久| 亚洲欧美日韩动漫| 日韩亚洲综合在线| 毛片久久网站小视频| 999福利激情视频 | 亚洲日韩精品无码专区97| 免费观看成人久久网免费观看| 国产精品成人久久| 亚洲高清无在码在线无弹窗| 欧美综合中文字幕久久| 91综合色区亚洲熟妇p| 97se亚洲综合| 色亚洲成人| 日本一区高清| 亚洲AV无码乱码在线观看代蜜桃 | 午夜视频在线观看免费网站 | 国产成人资源| 一级福利视频| 国产免费久久精品44| 亚洲日本中文字幕乱码中文| 亚洲专区一区二区在线观看| 亚洲日韩久久综合中文字幕| 国产成人乱无码视频| 高清不卡一区二区三区香蕉| 国产在线观看一区二区三区| 亚洲成人一区二区| 中文无码伦av中文字幕| 波多野结衣在线一区二区| 欧美激情二区三区| 在线精品欧美日韩| 国产成人无码综合亚洲日韩不卡| 亚洲区第一页| 尤物精品视频一区二区三区| 中国国产高清免费AV片| 国产1区2区在线观看| 国产综合无码一区二区色蜜蜜| 国产网站一区二区三区| 国产高清又黄又嫩的免费视频网站| 欧美在线天堂| 干中文字幕| 国产成人精品一区二区不卡| 中文字幕 日韩 欧美| 制服丝袜国产精品| 欧美成人二区| 麻豆国产在线观看一区二区| 欧美一级片在线| 午夜人性色福利无码视频在线观看 |