【问题标题】:Silverlight Security Concern when Dynamically Setting Connection String with Entity Framework使用实体框架动态设置连接字符串时的 Silverlight 安全问题
【发布时间】:2011-11-11 04:46:34
【问题描述】:

我正在使用实体框架,并且在许多数据库和服务器上都有相同的模型。我想根据登录用户在运行时设置我的连接字符串。我目前在我的 DomainService 中覆盖 CreateObjectContext() 并在那里设置连接字符串。这很好用,但我担心缺乏安全性。例如,在我的 DomainService 中,我有一个名为 SetConnectionString() 的调用方法,每次我需要一个新实体时,我都会传入连接字符串。这是从 DomainContext(客户端)完成的。由于我使用的是 SQL 集成安全性,我担心有人可能会在 clinet 上操纵连接字符串并访问他们无权使用的数据库。

为我想在运行时使用的域实体动态设置连接字符串的最安全方法是什么?

我确实在数据库中有数据库名称和服务器设置,如果我传入我的项目 ID 或其他一些信息,我可以从 DomainService 中查找,但我又回到了同样的问题 - 有人可以轻松欺骗此信息。

想法??

-斯科特

【问题讨论】:

    标签: silverlight security entity-framework wcf-ria-services


    【解决方案1】:

    希望我的回答是相关的,因为闪存开发人员面临同样的安全问题......

    使这个真正安全的唯一方法(“这个”是来自您的客户端代码的数据库连接)是让每个用户只能只读访问他们在数据库中的数据。

    正如您所意识到的,没有办法阻止用户监视/修改您发送回服务器的数据。即使您对通信进行加密,用户仍然可以访问代码,并且在闪存的情况下,由于微不足道的反编译,源代码。

    我不是数据库开发人员,但我对您经常询问的内容进行安全审计,因此以下建议可能是错误的,但我只是在谷歌上搜索了一下,似乎您可以使用视图来限制用户(设置凭据)到特定信息。

    如果不是,这篇文章似乎与您想要的有关:

    http://technet.microsoft.com/en-us/library/cc966395.aspx

    【讨论】:

      【解决方案2】:

      如何使用 ASP.NET 成员框架?将用户登录与框架中的登录调用联系起来,以确保用户是授权用户。为您要在域服务中保护的每个功能添加“RequiresAuthentication”属性。

      以下是有关在 Silverlight 中使用 ASP.NET 成员资格的更多详细信息:WCF RIA Services - Authentication, Roles, and Profiles

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-11-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多