保护WCF服务,使其只能由Silverlight应用程序调用

时间:2009-06-27 12:46:29

标签: wcf silverlight security

我正在编写一个Silverlight应用程序,它将通过一些WCF Web服务读取和写入服务器端数据库中的数据。

保护这些网络服务的最佳方法是什么?

我的目标是确保其他应用程序无法调用这些服务,并且可能会因为向数据库添加项目的请求而发送垃圾邮件。只有Silverlight应用程序需要能够访问它们。

2 个答案:

答案 0 :(得分:8)

Don绝对是正确的,没有万无一失的方法来确保客户端是Silverlight应用程序

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

您通常会考虑采用几种不同的方法:

  • 传输级安全性。有人篡改了交通吗?我们为此使用SSL。
  • 认证。我和我信任的人说话吗?在这里,我们通常使用其中一种身份验证机制(例如,Forms Auth)。您可以使用表单身份验证来保护Silverlight(实际上是Silverlight所在的页面)和WCF服务。令人困惑的是,可以使用SSL(虽然很少是因为这是一个痛苦的问题)。

答案 1 :(得分:4)

一般情况下,您无法假设客户端。如果您试图阻止非Silverlight应用程序访问您的网站,恶意客户端可以轻松伪装成Silverlight应用程序,而您又回到原点。

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

编辑:

让我修改一下,如果你想进入相互认证的世界,你可以设置PKI来管理证书,为所有用户颁发用户证书,然后你知道你的用户是谁。但是,其中一个可能是恶意的(并且才华横溢)并将证书注入另一个客户端。

相关问题