亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > XML > 正文

構建安全的Xml Web Service系列(一)

2024-09-05 20:55:58
字體:
來源:轉載
供稿:網友
  • 本文來源于網頁設計愛好者web開發社區http://www.html.org.cn收集整理,歡迎訪問。
  •   xml web service 從誕生那天就說自己都么都么好,還津津樂道的說internet也會因此而進入一個新紀元,可5年多來,xml web service并沒有像當初宣揚的那樣火起來,盡管在一些領域之內,也有人牛刀小試,但從整體而言,service還并沒有得到廣泛的應用,原因有很多,有一些來源于目前各大廠商都堅持自己的service標準,不能形成統一,也有對現有的穩定系統不愿進行更改的原因,但還包括web service本身的原因,最明顯的應該是兩個:1) 安全,2)性能。畢業設計的時候,寫的是高性能web service的開發和應用,下面,我想用幾篇文章來闡述一下有關xml web service安全的幾個解決方案。歡迎各位大蝦來砸。

      如何解決網絡服務的安全問題,我主要從以下兩個層面進行分析:

      1) 確保調用者的合法身份-保證來源的合法

      2) 在傳輸中不被非法監聽和篡改。

      當然還會有其他方面的安全隱患,希望大家能多多提出,我也好能進一步總結。

      如果您想更快的掌握本文提到的技術,您以前必須了解xml web service的工作原理,并且親自開發并部署或者使用過xml web service,只是您并不相信您部署的xml web service是安全的。

      本節先介紹一種最為簡單的確保調用者合法的解決方案-將用戶名和密碼附加在soap消息頭部,在服務器端進行用戶名密碼驗證。這種方式從解決了原網絡服務不能針對特定對象產生響應的問題。但因為仍以明文格式

      傳輸,所以不能有效地防止信息在傳輸過程中被偷窺,篡改或偽造。

      如果您以前已經使用了這種方法,請略過此篇文章,我下篇文章中將講述其他方式,更加合理的解決方案,歡迎您繼續關注。

      下面是實現此種解決方案的步驟,請您一步一步來

      第一步:首先您需要創建一個xml web service的服務項目,創建方法如下

      打開visual studio 2005,在起始頁上點擊創建項目,選擇visual c#中的asp.net web 服務應用程序,輸入項目名稱

      第二步:在該項目中創建一個擴展的soapheader對象mysoapheader,如下

    using system;
    using system.data;
    using system.configuration;
    using system.web;
    using system.web.security;
    using system.web.ui;
    using system.web.ui.webcontrols;
    using system.web.ui.webcontrols.webparts;
    using system.web.ui.htmlcontrols;
    using system.web.services.protocols;

    namespace webservice1
    {
        public class mysoapheader:soapheader
        {
            private string _username;
            private string _pwd;
            /**//// <summary>
            /// 用戶名
            /// </summary>
            public string username
            {
                get
                {
                    return _username;
                }
                set
                {
                    _username = value;
                }
            }
            /**//// <summary>
            /// 密碼
            /// </summary>
            public string pwd
            {
                get
                {
                    return _pwd;
                }
                set
                {
                    _pwd = value;
                }
            }
        }
    }

      第三步:創建一個xml web service,另添加一個要求使用soapheader的網絡服務方法

    using system;
    using system.data;
    using system.web;
    using system.collections;
    using system.web.services;
    using system.web.services.protocols;
    using system.componentmodel;

    namespace webservice1
    {
        /**//// <summary>
        /// service1 的摘要說明
        /// </summary>
        [webservice(namespace = "http://tempuri.org/")]
        [webservicebinding(conformsto = wsiprofiles.basicprofile1_1)]
        [toolboxitem(false)]
        public class service1 : system.web.services.webservice
        {
            public mysoapheader header = new mysoapheader();       
            [webmethod]
            [soapheader("header")]      
            public string helloworld()
            {
                if (header == null)
                {
                    return "您沒有設置soapheader,不能正常訪問此服務!";
                }
                if (header.username != "jillzhang" || header.pwd != "123456")
                {
                    return "您提供的身份驗證信息有誤,不能正常訪問此服務!";
                }
                return "hello world";
            }
        }
    }

      第四步:創建一個調用xml web service的console應用程序,如下:

    using system;
    using system.collections.generic;
    using system.text;

    namespace consoleapplication1
    {
        class program
        {
          
            static void main(string[] args)
            {
                localhost.service1 ws = new consoleapplication1.localhost.service1();
                //ws.mysoapheadervalue = new consoleapplication1.localhost.mysoapheader();
                //ws.mysoapheadervalue.username = "jillzhang";
                //ws.mysoapheadervalue.pwd = "123456";
                console.writeline(ws.helloworld());
            }
        }
    }

      下面的分析,對于大家來說,應該是最重要的,很多人不清楚soapheader的工作原理,為什么這么怪異的寫法竟能產生神奇的效果,下面我將不同情形下的soap消息解析出來,大家仔細觀察這個信息,并可以清晰地掌握了soapheader的工作原理了.

      首先,先看看沒有設置soapheader的情況下,soap消息為:

    -----soap請求 在 2007年05月22日 12時39分40秒
    <?xml version="1.0" encoding="utf-8"?><soap:envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:xsd="http://www.w3.org/2001/xmlschema"><soap:body><helloworld xmlns="http://tempuri.org/" /></soap:body></soap:envelope>

    -----soap響應 在 2007年05月22日 12時39分40秒
    <?xml version="1.0" encoding="utf-8"?><soap:envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:xsd="http://www.w3.org/2001/xmlschema"><soap:body><helloworldresponse xmlns="http://tempuri.org/"><helloworldresult>您提供的身份驗證信息有誤,不能正常訪問此服務!</helloworldresult></helloworldresponse></soap:body></soap:envelope>

      再看看在設置了soapheader之后的soap的請求和響應信息

    -----soap請求 在 2007年05月22日 12時42分20秒
    <?xml version="1.0" encoding="utf-8"?><soap:envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:xsd="http://www.w3.org/2001/xmlschema"><soap:header><mysoapheader xmlns="http://tempuri.org/"><username>jillzhang</username><pwd>123456</pwd></mysoapheader></soap:header><soap:body><helloworld xmlns="http://tempuri.org/" /></soap:body></soap:envelope>

    -----soap響應 在 2007年05月22日 12時42分20秒
    <?xml version="1.0" encoding="utf-8"?><soap:envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:xsd="http://www.w3.org/2001/xmlschema"><soap:body><helloworldresponse xmlns="http://tempuri.org/"><helloworldresult>hello world</helloworldresult></helloworldresponse></soap:body></soap:envelope>

      點正是通過這個節點,soapmessage將信息傳遞給了網絡服務端,網絡服務端便可以從中解析出來,并加以處理,從上面的soapmessage中,我們也看出,用戶名和密碼是以明文的格式傳輸的,這樣,soapheader就更像http協議中的cookie了,我們可以參考cookie的使用,來擴展soapheader,讓它變得更加安全些,但總的看來,通過直接設置soapheader的方法提高安全性還是有一定限制的。在安全不是特別重要的應用情形中,推薦采用此種解決方案,因為它方便快捷,靈活易用。

      下一節,我將介紹一下,如何獲取soapmessage.

    發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
    亚洲免费一在线| 欧美综合一区第一页| 国产精品露脸自拍| 在线亚洲午夜片av大片| 日本人成精品视频在线| 国产精品中文久久久久久久| 欧美精品少妇videofree| 欧美日韩国产成人在线观看| 俺去了亚洲欧美日韩| 97精品一区二区视频在线观看| 国产欧美一区二区三区久久| 亚洲欧美在线一区| 久久精品成人欧美大片古装| 最近的2019中文字幕免费一页| 国产精品视频播放| 国产97人人超碰caoprom| 国产精品久久久久久久天堂| 欧美性猛交xxxx黑人猛交| 成人动漫网站在线观看| 久久九九精品99国产精品| 日韩欧美在线免费| 福利一区视频在线观看| 成人亲热视频网站| 欧美亚洲免费电影| 日韩欧美国产黄色| 亚洲毛片一区二区| 韩曰欧美视频免费观看| 久久久久久久久久久av| 日韩一二三在线视频播| 久热精品在线视频| 亚洲天堂男人的天堂| 91在线高清视频| 九九热精品视频国产| 在线观看国产成人av片| 亚洲第一色在线| 午夜剧场成人观在线视频免费观看| 91性高湖久久久久久久久_久久99| 成人国产精品色哟哟| 91精品国产自产在线| 久久av在线播放| 欧美精品xxx| 国产成人jvid在线播放| 亚洲a中文字幕| 韩日欧美一区二区| 97视频在线观看亚洲| 成人免费网站在线观看| www.亚洲免费视频| 久久久这里只有精品视频| 一区二区三区四区视频| 日韩欧美精品在线观看| 性色av香蕉一区二区| 亚洲精品一区二三区不卡| 少妇高潮 亚洲精品| 欧美激情极品视频| 欧美成人精品激情在线观看| 国产精品白丝av嫩草影院| 国产成人精彩在线视频九色| 欧美风情在线观看| 日韩的一区二区| 精品一区电影国产| 亚洲欧洲免费视频| 久久九九精品99国产精品| 国产精品久久婷婷六月丁香| 久久国产精品网站| 精品视频—区二区三区免费| 韩国三级日本三级少妇99| 精品国内自产拍在线观看| 国产欧亚日韩视频| 欧美精品videos性欧美| 国产精品草莓在线免费观看| 国产精品美女av| 欧美丰满少妇xxxx| 欧美日韩亚洲一区二| 成人精品一区二区三区电影免费| 亚洲精品久久久久久下一站| 久久资源免费视频| 色与欲影视天天看综合网| 亚洲色图25p| 国产成人亚洲综合青青| 国产精品自产拍在线观看| 国产日韩欧美黄色| 日韩欧美高清在线视频| 欧美在线免费观看| 91久久久国产精品| 中文国产成人精品久久一| 国产成人精品一区二区在线| 国产精品一香蕉国产线看观看| 久久视频免费在线播放| 欧美性videos高清精品| 日韩欧美在线看| 久久久噜噜噜久噜久久| 久久综合伊人77777蜜臀| 97涩涩爰在线观看亚洲| 福利精品视频在线| 欧美精品一区二区三区国产精品| 欧美一区二区三区艳史| 国产欧美精品va在线观看| 日韩欧美在线视频观看| 亚洲国产毛片完整版| 亚洲视频999| 中文字幕无线精品亚洲乱码一区| 国产亚洲欧美日韩一区二区| 国产精品久久久久免费a∨| 欧美激情三级免费| 91国产精品电影| 精品国产鲁一鲁一区二区张丽| 亚洲aa中文字幕| 亚洲男人的天堂在线播放| 欧美性猛交xxxx久久久| 亚洲欧洲美洲在线综合| 亚洲成人免费在线视频| 午夜精品99久久免费| 精品国产拍在线观看| 97视频在线播放| 伊人伊成久久人综合网站| 欧美日韩综合视频网址| 亚洲国产成人爱av在线播放| 国产欧美欧洲在线观看| 日本久久久a级免费| 精品久久久视频| 国产精品扒开腿做爽爽爽视频| 日本一欧美一欧美一亚洲视频| 日本久久亚洲电影| 欧美高清理论片| 国产精品尤物福利片在线观看| 一本大道亚洲视频| 久久久久久久久国产| 国产日产欧美精品| 成人黄色免费看| 91沈先生在线观看| 成人久久久久久久| 亚洲国产精品嫩草影院久久| 成人深夜直播免费观看| 国产69久久精品成人看| 91在线看www| 色妞欧美日韩在线| 欧美激情网站在线观看| 97人洗澡人人免费公开视频碰碰碰| 欧美日韩国产在线播放| 国产精品日韩欧美大师| 欧美日韩亚洲一区二| 日本亚洲欧美成人| 国产欧美精品xxxx另类| 国产精品久久久久久久久男| 中文字幕国产亚洲| 亚洲日本欧美日韩高观看| 日韩欧美精品在线观看| 国产精品久久久久免费a∨大胸| 欧美日韩亚洲精品内裤| 日韩免费观看av| 欧美久久精品一级黑人c片| 日本久久久久久久久久久| 日韩女在线观看| 久久高清视频免费| 欧美精品videossex88| 国产一区二区成人| 国产成人小视频在线观看| 精品人伦一区二区三区蜜桃网站| 国产综合久久久久久| 久久免费精品日本久久中文字幕| 亚洲精品99久久久久| 日本亚洲精品在线观看| 久久精品视频一| 欧美电影在线观看网站|