天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

保護(hù)您的 Silverlight 應(yīng)用程序的安全

      作為一名 Microsoft 服務(wù)顧問,我定期與客戶和合作伙伴一起進(jìn)行應(yīng)用程序安全性討論。 在本文中,我將介紹一些在這些討論中提出的主題。 特別是,我將重點(diǎn)介紹編程人員在嘗試保護(hù) Silverlight 應(yīng)用程序的安全時(shí)所面臨的新挑戰(zhàn),而且我將考慮開發(fā)團(tuán)隊(duì)?wèi)?yīng)該將其資源集中于哪些方面。

本文提到了許多技術(shù)概念,您可以在其他位置(包括本雜志)找到這些概念的更多詳細(xì)信息。 因此,我就不在技術(shù)層面更加深入地討論這些主題。 本文的目標(biāo)是“理清頭緒”并介紹如何利用這些概念保護(hù)您的應(yīng)用程序的安全。

      當(dāng)規(guī)劃應(yīng)用程序的安全性時(shí),考慮三個(gè) A 非常有用:身份驗(yàn)證 (Authentication)、授權(quán) (Authorization) 和審核 (Audit)。

身份驗(yàn)證是確認(rèn)用戶身份的行為。 我們通常使用用戶名和密碼執(zhí)行此操作。

授權(quán)是指在進(jìn)行身份驗(yàn)證之后,確認(rèn)用戶實(shí)際上具有執(zhí)行特定操作或訪問特定資源的適當(dāng)權(quán)限的過程。

審核是維護(hù)活動(dòng)記錄,以便用戶無法拒絕對(duì)系統(tǒng)執(zhí)行的操作和請(qǐng)求的行為。

      在 Silverlight 應(yīng)用程序上下文中,我將重點(diǎn)介紹前兩項(xiàng)(身份驗(yàn)證和授權(quán))。 由于這是一個(gè)富 InterNET 應(yīng)用程序 (RIA),因此本文中描述的大多數(shù)概念同樣適用于異步 JavaScript 和 XML (AJAX) 或其他 RIA 方法。 我還將討論如何防止對(duì)您的 Silverlight 應(yīng)用程序文件進(jìn)行不必要的訪問。

      拓?fù)?/span>

      Silverlight 是一種跨瀏覽器插件,其利用 Windows Presentation Foundation (WPF) 率先采用的許多圖形概念,使 Web 開發(fā)人員能夠創(chuàng)建豐富的用戶體驗(yàn),這些用戶體驗(yàn)將超出僅使用 HTML 和 JavaScript 創(chuàng)建的體驗(yàn)。

      ASP.NET 不同的是,Silverlight 是一種客戶端技術(shù),它在用戶的計(jì)算機(jī)上運(yùn)行。 因此,Silverlight 開發(fā)無疑與 Windows 窗體或 WPF 有許多共同之處,而與 ASP.NET 的共同之處相對(duì)較少。 在許多方面,這是 Silverlight 的最大優(yōu)勢(shì)之一,因?yàn)樗?Web 應(yīng)用程序的無狀態(tài)性所導(dǎo)致的許多問題。 不過,由于所有 UI 代碼都是在客戶端計(jì)算機(jī)上運(yùn)行的,因此您不能再相信它。

      服務(wù)

      與 Windows 窗體不同的是,Silverlight 在瀏覽器沙盒內(nèi)運(yùn)行且擁有的功能減少,因此它所提供的安全程度提高(盡管在 Silverlight 4 中,用戶可以將某些應(yīng)用程序標(biāo)識(shí)為可信并將程序的權(quán)限提升為允許 COM 互操作)。 正因?yàn)槿绱耍琒ilverlight 不能直接連接到數(shù)據(jù)庫(kù),您必須創(chuàng)建一個(gè)可提供對(duì)您的數(shù)據(jù)和業(yè)務(wù)邏輯的訪問的服務(wù)層。

      例如,您通常會(huì)將這些服務(wù)承載于您的 Web 服務(wù)器上,就像使用 ASP.NET Web 窗體一樣。 假定 Silverlight 代碼運(yùn)行于服務(wù)器與現(xiàn)實(shí)世界之間的信任邊界的可信度較差的一側(cè)(參見圖 1),您的團(tuán)隊(duì)的工作重點(diǎn)應(yīng)始終是保護(hù)服務(wù)的安全。

圖 1 Silverlight 運(yùn)行于信任邊界的可信度較差的一側(cè)

      在您的 Silverlight 代碼內(nèi)實(shí)現(xiàn)嚴(yán)格的安全檢查幾乎沒有意義。 畢竟,攻擊者可以很容易就完全擺脫 Silverlight 應(yīng)用程序并直接調(diào)用您的服務(wù),從而避開您實(shí)現(xiàn)的任何安全措施。 此外,惡意人員可以使用像 Silverlight Spy或 Debugging Tools for Windows 這樣的實(shí)用程序更改您的應(yīng)用程序在運(yùn)行時(shí)的行為。

我們要認(rèn)識(shí)到的重要一點(diǎn)是:服務(wù)無法確切地知道哪個(gè)應(yīng)用程序正在調(diào)用它或者該應(yīng)用程序在某些方面尚未被修改。 因此,您的服務(wù)必須確保:

  • 調(diào)用方已經(jīng)過適當(dāng)?shù)纳矸蒡?yàn)證
  • 調(diào)用方已獲授權(quán)執(zhí)行所請(qǐng)求的操作

      鑒于上述原因,本文的大部分內(nèi)容重點(diǎn)介紹如何采用與 Silverlight 兼容的方式保護(hù)服務(wù)的安全。 特別是,我將考慮通過 ASP.NET 在 Microsoft IIS 中承載兩種不同類型的服務(wù)。 第一種類型是使用 Windows Communication Foundation (WCF)創(chuàng)建的服務(wù),它為構(gòu)建服務(wù)提供一種統(tǒng)一的編程模型。 第二種類型是 WCF 數(shù)據(jù)服務(wù)(以前稱為“ADO.NET 數(shù)據(jù)服務(wù)”),其構(gòu)建于 WCF 之上,允許您使用標(biāo)準(zhǔn) HTTP 謂詞(一種稱為“具象狀態(tài)傳輸”(REST)的方法)快速公開數(shù)據(jù)。

      通常,如果擔(dān)心安全性,則加密客戶端和服務(wù)器之間的任何通信始終是明智之舉。 建議使用 HTTPS/SSL 加密,且本文內(nèi)假定使用此加密方法。

      目前,Web 開發(fā)人員在 Microsoft 平臺(tái)上最常用的兩種身份驗(yàn)證方法是 Windows 身份驗(yàn)證和窗體身份驗(yàn)證。

      Windows 身份驗(yàn)證

      Windows 身份驗(yàn)證利用本地安全機(jī)構(gòu)或 Active Directory驗(yàn)證用戶憑據(jù)。 這在許多方案中都是一大優(yōu)勢(shì);它意味著您可以使用系統(tǒng)管理員已經(jīng)熟悉的工具集中管理用戶。 Windows 身份驗(yàn)證可以使用 IIS 支持的任何方案,包括基本身份驗(yàn)證、摘要式身份驗(yàn)證、集成身份驗(yàn)證(NTLM/Kerberos)和證書。

      在使用 Windows 身份驗(yàn)證時(shí),通常都會(huì)選擇集成方案,因?yàn)橛脩魺o需再次提供其用戶名和密碼。 用戶在登錄到 Windows 之后,瀏覽器可采用用于確認(rèn)個(gè)人身份的令牌或握手形式轉(zhuǎn)發(fā)憑據(jù)。 但是由于客戶端和服務(wù)器需要了解用戶的域,使用集成身份驗(yàn)證有許多缺點(diǎn)。 因此,集成身份驗(yàn)證最適用于 IntraNET 方案。 此外,盡管它自動(dòng)與 Microsoft InterNET Explorer 一起使用,但其他瀏覽器(如 Mozilla Firefox)需要進(jìn)行額外配置。

      通常,基本身份驗(yàn)證和摘要式身份驗(yàn)證需要用戶在啟動(dòng)與您的網(wǎng)站的會(huì)話時(shí),重新輸入其用戶名和密碼。 但是,由于這兩種身份驗(yàn)證都屬于 HTTP 規(guī)范,因此它們?cè)诖蠖鄶?shù)瀏覽器中均可正常使用,即使是從組織外部進(jìn)行訪問也是如此。

      Silverlight 利用瀏覽器進(jìn)行通信,因此使用剛才討論的任何 IIS 身份驗(yàn)證方法,均可輕松實(shí)現(xiàn) Windows 身份驗(yàn)證。 有關(guān)如何實(shí)現(xiàn)的詳細(xì)說明,建議閱讀分步指南“如何:在 Windows 窗體中,使用 WCF 中的 basicHttpBinding 進(jìn)行 Windows 身份驗(yàn)證并使用 TransportCredentialOnly”(網(wǎng)址為:msdn.microsoft.com/library/cc949012)。 此示例實(shí)際上使用 Windows 窗體測(cè)試客戶端,但相同的方法也適用于 Silverlight。

      窗體身份驗(yàn)證

      窗體身份驗(yàn)證是一種為 ASP.NET 中的自定義身份驗(yàn)證提供簡(jiǎn)單支持的機(jī)制。 因此,它特定于 HTTP,這意味著它也可在 Silverlight 中輕松使用。

用戶輸入用戶名和密碼組合,此信息將提交給服務(wù)器進(jìn)行驗(yàn)證。 服務(wù)器根據(jù)可信的數(shù)據(jù)源(通常是用戶數(shù)據(jù)庫(kù))檢查憑據(jù),如果憑據(jù)正確,則返回一個(gè) FormsAuthentication Cookie。 然后,客戶端在隨后的請(qǐng)求中提供此 Cookie。 Cookie 經(jīng)過簽名和加密,因此只有服務(wù)器才能解密,惡意用戶既無法解密,也無法篡改。

      調(diào)用窗體身份驗(yàn)證的確切方式因登錄屏幕的實(shí)現(xiàn)方式而異。 例如,如果在驗(yàn)證了用戶的憑據(jù)后,使用重定向到您的 Silverlight 應(yīng)用程序的 ASP.NET Web 窗體,您可能不再需要執(zhí)行身份驗(yàn)證工作。 Cookie 已發(fā)送到瀏覽器,且每當(dāng)請(qǐng)求該域時(shí),您的 Silverlight 應(yīng)用程序都將繼續(xù)使用該 Cookie。

不過,如果您希望在 Silverlight 應(yīng)用程序內(nèi)實(shí)現(xiàn)登錄屏幕,您將需要?jiǎng)?chuàng)建一個(gè)公開您的身份驗(yàn)證方法并發(fā)送相應(yīng) Cookie 的服務(wù)。 但幸運(yùn)的是,ASP.NET 已經(jīng)提供了您所需要的身份驗(yàn)證服務(wù), 您只需在您的應(yīng)用程序中啟用它即可。 有關(guān)詳細(xì)指南,建議閱讀“如何:使用 ASP.NET 身份驗(yàn)證服務(wù)通過 Silverlight 應(yīng)用程序登錄”(網(wǎng)址為:msdn.microsoft.com/library/dd560704(VS.96))。

      ASP.NET 身份驗(yàn)證的另一項(xiàng)強(qiáng)大的功能是其可擴(kuò)展性。 成員資格提供程序描述了用于驗(yàn)證用戶名和密碼的機(jī)制。 幸運(yùn)的是,ASP.NET 附帶了許多成員資格提供程序,包括一個(gè)可使用 SQL Server 數(shù)據(jù)庫(kù)的成員資格提供程序,還有一個(gè)使用 Active Directory的成員資格提供程序。 然而,如果沒有符合您要求的提供程序,可直接創(chuàng)建一個(gè)自定義實(shí)現(xiàn)。

      ASP.NET 授權(quán)

      在您的用戶通過身份驗(yàn)證后,請(qǐng)務(wù)必確保只有他們才能嘗試調(diào)用服務(wù)。 ASP.NET 應(yīng)用程序中,普通 WCF 服務(wù)和 WCF 數(shù)據(jù)服務(wù)均以.svc 文件表示。 本示例中,將在 IIS 中通過 ASP.NET 來承載服務(wù),我將演示如何使用文件夾確保對(duì)服務(wù)的安全訪問。

      采用這種方式保護(hù).svc 文件的安全有點(diǎn)令人迷惑不解,因?yàn)槟J(rèn)情況下,對(duì)此類文件的請(qǐng)求實(shí)際上會(huì)跳過大多數(shù) ASP.NET 管道,從而繞過授權(quán)模塊。 因此,為了能夠利用許多 ASP.NET 功能,您必須啟用 ASP.NET 兼容性模式。 在任何情況下,WCF 數(shù)據(jù)服務(wù)都會(huì)強(qiáng)制要求您啟用它。 在您的配置文件內(nèi)進(jìn)行簡(jiǎn)單的切換即可完成任務(wù): 

<system.serviceModel>	<serviceHostingEnvironment ASPNETCompatibilityEnabled="true"/></system.serviceModel><system.web>	<authorization>		<deny users="?"/>	</authorization></system.web>

NET技術(shù)保護(hù)您的 Silverlight 應(yīng)用程序的安全,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 超碰 无码 中文字幕 | 日本19禁啪啪吃奶大尺度 | 区久久AAA片69亚洲 | 4455永久在线毛片观看 | 在线 | 果冻国产传媒61国产免费 | 久久热在线视频精品 | 久久精品九九亚洲精品天堂 | 超碰97人人做人人爱少妇 | 美女快播第一网 | c了瑜伽老师嗷嗷叫一节课视频 | 国产激情精品久久久久久碰 | 国产精品一区二区AV白丝在线 | 亚洲乱码国产乱码精品精98 | 男女夜晚在爽视频免费观看 | 午夜福利理论片高清在线 | 强姧伦久久久久久久久 | 中国国产不卡视频在线观看 | 麻豆婷婷狠狠色18禁久久 | FREEHDXXXX学生妹 | 全黄h全肉细节全文 | 免费精品美女久久久久久久久久 | 海角社区在线视频播放观看 | 国内精品蜜汁乔依琳视频 | 亚洲欧美日韩综合影院 | 午夜福利免费视频921000电影 | 久久久久综合网久久 | 啊灬啊别停灬用力啊老师 | 京香在线播放 | 国产激情一级毛片久久久 | 色播成人影院 | www精品一区二区三区四区 | 亚洲国产成人在线 | 亚洲 自拍 欧洲 视频二区 | 亚洲国语在线视频手机在线 | 花蝴蝶高清影视视频在线播放 | 亚洲三级在线看 | 蜜臀亚洲AV永久无码精品老司机 | 国产精品久久高潮呻吟无码 | 国产在线观看免费观看不卡 | 成人毛片大全 | 亚洲最大在线视频 |