2009-06-27 84 views
3

我正在编写一个Silverlight应用程序,它将通过一些WCF Web服务将数据读取和写入服务器端数据库。确保WCF服务安全,只能通过Silverlight应用程序调用

什么是保护这些Web服务的最佳方式?

我的目标是确保其他应用程序无法调用这些服务,并且可能会将请求添加到数据库中。只有Silverlight应用程序需要能够访问它们。

回答

4

一般来说,你不能假设任何有关客户端。如果您尝试让非Silverlight应用程序无法访问您的网站,恶意客户可以轻松装扮成Silverlight应用程序,然后又回到原点。

这就是说,这不是保护服务器的有效方法。为了保护你的服务器,假设任何和所有的客户端都会攻击你的站点,并从那里开始。

编辑:

让我修改的是说,如果你想进入相互认证的世界里,你可以设置一个PKI来管理证书,发行用户证书的所有用户,然后你知道你的用户是谁。尽管如此,其中一个可能是恶意的(并且很有天赋),并将证书注入另一个客户端。

8

唐是绝对正确的,有没有万无一失的方式确保客户端是一个Silverlight应用程序

但是,我认为您需要了解以下方面的更多信息:我可以确保只有我信任的人才能连接到服务。 答案在这里(基本上)是肯定的,或者至少我们有标准化的方法来做到这一点。

你通常会要考虑几个不同的方法:

  • 传输层安全性。有人篡改了流量吗?我们为此使用SSL。
  • 认证。我在跟一个我信任的人说话吗?在这里,我们通常会使用其中一种身份验证机制(比如Forms Auth)。您可以使用表单身份验证来保护Silverlight(实际上是Silverlight所在的页面)和WCF服务。令人困惑的是,SSL可以用于身份验证(尽管很少是因为这是一个痛苦的脖子)。
+0

Don说了些什么非常有见地的评论。绝对是upvote。 ;) – 2009-06-27 18:44:23

相关问题