• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于asp.net動(dòng)態(tài)網(wǎng)站前臺(tái)程序安全性設(shè)計(jì)的研究

      2015-07-18 12:07:30殷茵馬嫚紅秦久明石范鋒
      電腦知識(shí)與技術(shù) 2015年12期
      關(guān)鍵詞:防御安全性

      殷茵 馬嫚紅 秦久明 石范鋒

      摘要:該文主要研究了基于asp.net動(dòng)態(tài)網(wǎng)站前臺(tái)程序設(shè)計(jì)中的SQL注入漏洞和XSS攻擊漏洞,提出了在開發(fā)基于asp.net動(dòng)態(tài)網(wǎng)站前臺(tái)程序設(shè)計(jì)時(shí)防止SQL注入攻擊和XSS跨站攻擊的方法和措施。

      關(guān)鍵詞:SQL注入漏洞;XSS注入漏洞;防御;前臺(tái)程序;安全性

      中圖分類號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2015)12-0060-02

      隨著Internet發(fā)展,Web應(yīng)用程序的應(yīng)用越來越廣泛,由于應(yīng)用程序的運(yùn)行環(huán)境的開放性,隨之出現(xiàn)的安全性隱患和風(fēng)險(xiǎn)也越來越高,一些針對(duì)動(dòng)態(tài)網(wǎng)站的攻擊技術(shù)也“與時(shí)俱進(jìn)”。目前常見的針對(duì)動(dòng)態(tài)網(wǎng)站攻擊行為主要有SQL注入攻擊、XSS跨站腳本攻擊等。

      1 SQL注入攻擊和防御

      SQL注入攻擊是指從客戶端地址欄或網(wǎng)頁的接口輸入提交一些特殊的非法代碼,讓其注入到服務(wù)器端正常執(zhí)行的業(yè)務(wù)SQL中去,從而改變SQL語句的原有邏輯,獲取重要的敏感數(shù)據(jù),繞過登錄驗(yàn)證,甚至執(zhí)行系統(tǒng)命令,上傳后門文件等行為。由于SQL注入從正常Web端口訪問,一般防火墻不會(huì)阻擋和警告,Web系統(tǒng)可能被入侵而長時(shí)間不會(huì)被發(fā)現(xiàn)。理論上只要是帶有查詢字符串變量參數(shù)的動(dòng)態(tài)網(wǎng)頁且此網(wǎng)頁訪問數(shù)據(jù)庫,如果Web應(yīng)用程序中沒有對(duì)輸入?yún)?shù)進(jìn)行必要的合法檢查和過濾,就有可能成為SQL注入攻擊漏洞。

      1.1 SQL注入點(diǎn)判斷

      URL查詢參數(shù)為整數(shù)型,地址為:http://www.abc.com/News.aspx?NewId=1,可通過以下方法查看有沒有SQL注入漏洞:

      1)在地址欄中輸入http://www.abc.com/News.aspx?NewId=1,運(yùn)行異常;

      2)在地址欄中輸入http://www.abc.com/News.aspx?NewId=1 and 1=1,運(yùn)行正常;

      3)在地址欄中輸入http://www.abc.com/News.aspx?NewId=1 and 1=2,運(yùn)行異常;

      可以判斷存在SQL注入漏洞。

      URL查詢參數(shù)為字符串型,地址為:http://www.abc.com/News.aspx?NewId=1,可通過以下方法查看有沒有SQL注入漏洞:

      1)在地址欄中輸入http://www.abc.com/News.aspx?NewId=1,運(yùn)行異常;

      2)在地址欄中輸入http://www.abc.com/News.aspx?NewId=1 and ‘1=1,運(yùn)行正常;

      3)在地址欄中輸入http://www.abc.com/News.aspx?NewId=1 and ‘1=2,運(yùn)行異常。

      可以判斷存在SQL注入漏洞。

      1.2 SQL注入攻擊

      利用SQL注入漏洞,通過在查詢字符串參數(shù)加上特殊的Select查詢語句可查看管理員表的信息。

      1)獲取管理員表名方法

      http://www.abc.com/News.aspx?NewId=1 and 1=1 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 from [表名],如正常執(zhí)行,就可獲取表名;

      2)獲取管理員表中字段名和字段值

      http://www.abc.com/News.aspx?NewId=1 and 1=2 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 from [表名],如正常執(zhí)行,就會(huì)在原來頁面正常顯示動(dòng)態(tài)信息的地方顯示上述對(duì)應(yīng)的數(shù)字,然后將對(duì)應(yīng)的數(shù)字換成猜測的字段名即可。

      1.3 SQL注入防御

      在開發(fā)Web應(yīng)用程序時(shí),查詢字符串變量參數(shù)最好使用數(shù)值型,對(duì)輸入的內(nèi)容要進(jìn)行必要的合法性檢查驗(yàn)證,可根據(jù)查詢語句參數(shù)的類型,如果是數(shù)值型可通過數(shù)據(jù)類型轉(zhuǎn)換方法驗(yàn)證,如出錯(cuò)則跳轉(zhuǎn)到出錯(cuò)頁;如果是字符串型查詢參數(shù)則應(yīng)要過濾一些敏感的字符,并作為Command命令對(duì)象的參數(shù)值使用。應(yīng)盡量使用Session傳遞參數(shù),對(duì)查詢字符串變量最好定義專用類或由空頁處理后再轉(zhuǎn)到相關(guān)的頁面,處理方法如下述代碼所示:

      int i=0;

      if (Request["NewsID"] != null)

      {

      try

      { i = int.Parse(Request["NewsID "].ToString());

      Session["nid"] = i.ToString();

      }

      catch

      { Response.Redirect("~/Error.aspx");

      }

      if (i > 0)

      { Response.Redirect("~/NewsShow.aspx");

      }

      } else

      {

      Response.Redirect("~/Error.aspx");

      }

      2 XSS注入漏洞和防御

      XSS即跨站腳本攻擊,是指通過向Web頁面里插入惡意腳本代碼,當(dāng)用戶瀏覽該頁時(shí),嵌入其中腳本代碼就自動(dòng)執(zhí)行,從而達(dá)到惡意用戶的目的,例如,自動(dòng)打開和發(fā)送有關(guān)頁,盜取會(huì)話、cookie信息等。

      2.1 XSS注入攻擊

      Web應(yīng)用程序中假如有用戶注冊、留言等功能,如果沒有對(duì)輸入和輸出的信息進(jìn)行合法性驗(yàn)證和過濾就有可能成為XSS注入攻擊點(diǎn)。

      例如通過用戶注冊或留言向網(wǎng)站數(shù)據(jù)庫中輸入如下腳本代碼:

      當(dāng)用戶打開含有此腳本的頁面時(shí),腳本就自動(dòng)執(zhí)行,打開另一網(wǎng)站的頁面,并將保存在本地的此網(wǎng)站的Cookie發(fā)送過去。如果inputcookie.aspx的頁面中含有接收cookie并存放到數(shù)據(jù)庫的功能,就非法獲取了用戶的Cookie信息。inputcookie.aspx頁面的代碼如下:

      if (Request.Cookies[0] != null)

      { string connstr = ConfigurationManager.ConnectionStrings["cookiename"].ConnectionString;

      connstr = connstr +Server.MapPath( ConfigurationManager.ConnectionStrings["cookiedb"].ConnectionString);

      string sqlstr = "insert into testtable(cookie) values(?)";

      OleDbConnection conn = new OleDbConnection(connstr);

      OleDbCommand comm = new OleDbCommand(sqlstr, conn);

      OleDbParameter p = new OleDbParameter("@c", Request.Cookies[0].Value.ToString());

      comm.Parameters.Add(p);

      try

      {

      conn.Open();

      comm.ExecuteNonQuery();}

      catch

      { ; }

      if (conn.State == ConnectionState.Connecting)

      { conn.Close();}}

      2.2 XSS注入防御

      Asp.net 1.1后頁面具備了對(duì)表單自動(dòng)檢測是否存在XSS漏洞的能力,當(dāng)提交如之類的輸入時(shí),引擎會(huì)自動(dòng)引發(fā)一個(gè)請(qǐng)求驗(yàn)證異常錯(cuò)誤,aspx界面Page指令中默認(rèn)為ValidateRequest="true",這樣就會(huì)自動(dòng)驗(yàn)證所提交的內(nèi)容是否含XSS漏洞內(nèi)容。因此不要將前臺(tái)頁面Page指令中的“ValidateRequest”設(shè)為“false”,盡量不要在動(dòng)態(tài)網(wǎng)站的前臺(tái)使用富文本編輯器,如果非要使用,則對(duì)所輸入的內(nèi)容進(jìn)行嚴(yán)格的過濾,過濾掉敏感的符號(hào)或單詞,保留需要的html代碼,代碼如下所示:

      string str = "123abc;";

      str=str.Replace("", "b11");

      str=str.Replace("

      ", "b12");

      str=Server.HtmlEncode(str);

      str=str.Replace( "b11","");

      str=str.Replace("b12", "

      ");

      Label1.Text = str;

      在程序中,過濾掉敏感的html標(biāo)簽,例如:

      、、、

      公司地址: 北京市西城區(qū)德外大街83號(hào)德勝國際中心B-11

      客服熱線:400-656-5456??客服專線:010-56265043??電子郵箱:longyuankf@126.com

      電信與信息服務(wù)業(yè)務(wù)經(jīng)營許可證:京icp證060024號(hào)

      Dragonsource.com Inc. All Rights Reserved

      icp

      猜你喜歡
      防御安全性
      兩款輸液泵的輸血安全性評(píng)估
      既有建筑工程質(zhì)量安全性的思考
      某既有隔震建筑檢測與安全性鑒定
      米氮平治療老年失眠伴抑郁癥的療效及安全性
      數(shù)據(jù)挖掘在計(jì)算機(jī)網(wǎng)絡(luò)病毒防御中的應(yīng)用
      論校園無線局域網(wǎng)的攻擊與防御
      ApplePay橫空出世 安全性遭受質(zhì)疑 拿什么保護(hù)你,我的蘋果支付?
      計(jì)算機(jī)網(wǎng)絡(luò)安全與防御研究
      計(jì)算機(jī)網(wǎng)絡(luò)安全與防御
      芻議新局勢下計(jì)算機(jī)病毒防御技術(shù)
      连山| 吴川市| 通州区| 革吉县| 手游| 大姚县| 金溪县| 泾川县| 个旧市| 信阳市| 镶黄旗| 蓬安县| 无为县| 维西| 临夏县| 海丰县| 三门县| 仪征市| 浪卡子县| 靖江市| 徐水县| 铜陵市| 烟台市| 东丰县| 桃江县| 喀喇沁旗| 惠东县| 二手房| 寿光市| 浦东新区| 兴义市| 星座| 泰兴市| 调兵山市| 富宁县| 措勤县| 香格里拉县| 炎陵县| 嘉黎县| 栾城县| 北海市|