一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

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

      作為一名 Microsoft 服務(wù)顧問(wèn),我定期與客戶和合作伙伴一起進(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í)行特定操作或訪問(wèn)特定資源的適當(dāng)權(quán)限的過(guò)程。

審核是維護(hù)活動(dòng)記錄,以便用戶無(wú)法拒絕對(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)行不必要的訪問(wè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ā)無(wú)疑與 Windows 窗體或 WPF 有許多共同之處,而與 ASP.NET 的共同之處相對(duì)較少。 在許多方面,這是 Silverlight 的最大優(yōu)勢(shì)之一,因?yàn)樗?Web 應(yīng)用程序的無(wú)狀態(tài)性所導(dǎo)致的許多問(wèn)題。 不過(guò),由于所有 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èn)的服務(wù)層。

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

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

      在您的 Silverlight 代碼內(nèi)實(shí)現(xiàn)嚴(yán)格的安全檢查幾乎沒(méi)有意義。 畢竟,攻擊者可以很容易就完全擺脫 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ù)無(wú)法確切地知道哪個(gè)應(yīng)用程序正在調(diào)用它或者該應(yīng)用程序在某些方面尚未被修改。 因此,您的服務(wù)必須確保:

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

      鑒于上述原因,本文的大部分內(nèi)容重點(diǎn)介紹如何采用與 Silverlight 兼容的方式保護(hù)服務(wù)的安全。 特別是,我將考慮通過(guò) 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(wú)需再次提供其用戶名和密碼。 用戶在登錄到 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)行訪問(wèn)也是如此。

      Silverlight 利用瀏覽器進(jìn)行通信,因此使用剛才討論的任何 IIS 身份驗(yàn)證方法,均可輕松實(shí)現(xiàn) Windows 身份驗(yàn)證。 有關(guān)如何實(shí)現(xiàn)的詳細(xì)說(shuō)明,建議閱讀分步指南“如何:在 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)過(guò)簽名和加密,因此只有服務(wù)器才能解密,惡意用戶既無(wú)法解密,也無(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。

不過(guò),如果您希望在 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ù)通過(guò) 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的成員資格提供程序。 然而,如果沒(méi)有符合您要求的提供程序,可直接創(chuàng)建一個(gè)自定義實(shí)現(xiàn)。

      ASP.NET 授權(quán)

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

      采用這種方式保護(hù).svc 文件的安全有點(diǎn)令人迷惑不解,因?yàn)槟J(rèn)情況下,對(duì)此類文件的請(qǐng)求實(shí)際上會(huì)跳過(guò)大多數(shù) ASP.NET 管道,從而繞過(guò)授權(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)載需保留來(lái)源!

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

主站蜘蛛池模板: 国产婷婷成人久久av免费高清 | 在线免费精品视频 | 国产精品久久九九 | www.婷婷色| 视频91在线| 国产色婷婷精品免费视频 | 国产成人精品一区二区视频 | 高清一区二区在线观看 | 亚洲美女视频网址 | 中文字字幕码一二区 | 九九99九九在线精品视频 | 中文字幕在线视频网 | 亚洲乱人伦精品图片 | 色网站免费观看 | 色哟哟视频在线观看网站 | 四虎永久免费在线 | 狠狠色伊人亚洲综合网站色 | 日韩亚洲精品不卡在线 | 亚洲天堂图片 | 亚洲午夜精品aaa级久久久久 | 婷婷快播| 国产片欧美片亚洲片久久综合 | 麻豆专区| 一个色亚洲 | 美国三级日本三级久久99 | 色婷婷一区二区三区四区成人 | 91精品国产高清久久久久久 | 欧美日韩国产一区二区三区欧 | 久久亚洲精品无码观看不卡 | 欧美另类xxxx | 国产全部理论片线观看 | 国产精品成人久久久 | 免费高清小黄站在线观看 | 国产精品资源网站在线观看 | 色噜噜国产在线91蝌蚪 | 亚洲www视频 | 自愉自愉自产国产91 | 97人人在线 | 麻豆精品在线视频 | 成人怡红院视频在线观看 | 亚洲一区中文字幕在线观看 |