2

我有一个使用 Silverlight 和 ASP.NET 作为前端的应用程序。它通过调用托管在那里的一些 RESTful WCF 服务从服务器检索数据。我想阻止好奇的用户打开一个新的浏览器窗口并自己调用网络服务。有没有办法限制对特定应用程序的 Web 服务的访问?

谢谢!

4

4 回答 4

2

您可以使用 HTTPS 来保护端点并要求身份验证。您可以在代码中嵌入一个令人讨厌的长密钥。不幸的是,System.Security.Cryptography 不在 SL 安装中,因此在服务器上没有加密/在客户端功能上没有解密。无论如何,用户没有理由不能只使用反射器之类的东西来读取代码。

SL 可以“主要安全”,但绝对不安全。

于 2009-12-15T21:20:40.083 回答
0

如果您真的对保护您的 Web 服务感兴趣,您应该考虑从 RESTful 服务迁移到基于 SOAP 的 Web 服务,并为基于消息的加密实现 WS-Security 标准。

然后,您可以保护您的服务,以便只有具有正确安全信息(在用户名/密码或 X.509 证书中)的客户端才能调用您的 Web 服务。

更新

如您所见...我已将 X.509 作为选项删除。我愣了片刻,忘记了 Silverlight 中的 WS-Security 限制。好消息是您可以在 Silverlight 中实现基于 WS-Security 标准的用户名令牌:

使用 Silverlight 实现用户名密码和 WS-Security

于 2009-12-15T21:20:29.553 回答
0

这是 WCF 安全模式和实践团队的指南。那里有很多东西可以找到。

http://www.codeplex.com/WCFSecurityGuide

于 2010-03-09T10:03:51.040 回答
-1

不,没有。

于 2009-12-15T21:17:10.290 回答