繁体   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