簡體   English   中英

使用實體框架動態設置連接字符串時的Silverlight安全問題

[英]Silverlight Security Concern when Dynamically Setting Connection String with Entity Framework

我正在使用實體框架,並且在許多數據庫和服務器上具有相同的模型。 我想在運行時根據登錄用戶設置連接字符串。 我目前在DomainService中重寫CreateObjectContext()並在那里設置連接字符串。 這很好,但是我擔心缺乏安全性。 例如,在DomainService中,我有一個名為SetConnectionString()的調用方法,每次需要新的Entity時,我都會在其中傳遞連接字符串。 這是通過DomainContext(客戶端)完成的。 由於我使用的是SQL Integrated Security,因此我擔心有人可以操縱clinet上的連接字符串,並訪問他們未經授權使用的數據庫。

為我要在運行時使用的域實體動態設置連接字符串的最安全方法是什么?

我確實在數據庫中有數據庫名稱和服務器設置,如果我傳入了項目ID或其他一些信息,我可以從DomainService中查找,但是我又回到了同樣的問題-有人可以輕易地欺騙這個信息。

想法?

-斯科特

希望我的回答是有意義的,因為閃存開發人員也面臨着同樣的安全問題。

確保這一點真正安全的唯一方法(“這”是來自客戶端代碼的數據庫連接)是使每個用戶僅對其數據庫中的數據具有只讀訪問權限。

正如您所意識到的那樣,無法阻止用戶監視/修改要發送回服務器的數據。 即使您對通信進行加密,由於瑣碎的反編譯操作,用戶仍然可以訪問代碼,對於Flash,用戶仍可以訪問源代碼。

我不是數據庫開發人員,但是我對您經常詢問的內容進行安全審核,因此以下建議可能是錯誤的,但是我只是用谷歌搜索,似乎您可以使用視圖來限制用戶(憑據集)具體信息。

如果沒有,那么本文似乎與您想要的內容相關:

http://technet.microsoft.com/zh-CN/library/cc966395.aspx

如何使用ASP.NET成員資格框架? 將用戶登錄名與框架中的“登錄”調用聯系起來,以確保該用戶為授權用戶。 向您要在域服務中保護的每個功能添加“ RequiresAuthentication”屬性。

以下是有關將ASP.NET成員資格與Silverlight一起使用的更多詳細信息: WCF RIA服務-身份驗證,角色和配置文件

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM