亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

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

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

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

        一、前言

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

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

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

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

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

        2.用戶輸入的校驗分析

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

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

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

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

        3.跨站攻擊及防范

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

        <%@ Page Language=“vb” %>

        <asp:Label id=“Label1”runat=“server”>標簽文字</asp:Label>

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

        請在此處輸入反饋信息<br>

        <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>

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

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

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

        HttpUtility.UrlEncode(urlString);

        4.SQL注入攻擊及防范

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

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

        SqlDataAdapter my_query = new SqlDataAdapter(

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

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

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

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

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

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

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

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

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

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

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

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

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

        四、結(jié)論

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

        參考文獻:

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

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

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

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

        国产内射999视频一区| 国产一级一区二区三区在线播放| 视频在线观看一区二区三区| 中文字幕人妻熟在线影院| 亚洲男人第一av网站| 午夜无码片在线观看影院y| 日本一二三区在线不卡| 精品亚洲a∨无码一区二区三区| 免费精品一区二区三区第35| 久久频精品99香蕉国产| 蜜桃视频成年人在线观看| 青春草在线视频观看| 中文字幕久无码免费久久| 亚洲V无码一区二区三区四区观看 久久精品国产亚洲综合色 | 国产精品国产三级在线高清观看| 中文字幕av一区二区三区诱惑| 精品国产av一区二区三区四区| 精品av天堂毛片久久久| 亚洲av成人精品一区二区三区| 性欧美videofree高清精品 | 久久se精品一区二区国产| 精品综合久久88少妇激情| 成人无码网www在线观看| 国产精品6| 国产黑色丝袜在线观看网站91| 无遮挡很爽很污很黄的女同| 日韩一卡2卡3卡4卡新区亚洲| 国产精品丝袜在线不卡| 色综合久久精品中文字幕| 亚洲熟妇无码av在线播放 | 欧美精品AⅤ在线视频| 国产风骚主播视频一区二区| 日韩视频在线观看| 初尝黑人巨砲波多野结衣| 杨幂Av一区二区三区| 粉嫩极品国产在线观看免费一区| 国产一区二区女内射| 亚洲精品国产一二三无码AV| 能看不卡视频网站在线| 免费欧洲毛片a级视频老妇女| 国产精品 视频一区 二区三区|