我有一个使用Silverlight和ASP.NET作为前端的应用程序。它通过调用托管在那里的一些RESTful WCF服务从服务器检索数据。我想阻止好奇的用户打开一个新的浏览器窗口并自己调用Web服务。有没有办法限制对特定应用程序的Web服务的访问?
谢谢!
答案 0 :(得分:2)
您可以使用HTTPS来保护端点并要求身份验证。您可以在代码中嵌入一个令人讨厌的长密钥。不幸的是,System.Security.Cryptography不在SL安装中,因此在服务器上没有加密/解密客户端功能。并且没有理由用户不能仅仅使用反射器之类的东西来阅读代码。
SL可以“大多是安全的”,但绝对不安全。
答案 1 :(得分:0)
如果您真的对保护Web服务感兴趣,那么您应该考虑从RESTful服务迁移到基于SOAP的Web服务,并实现基于消息的加密的WS-Security标准。
然后,您可以保护您的服务,以便只有拥有适当安全信息(使用用户名/密码或X.509证书)的客户才能调用您的Web服务。
<强>更新强>
正如您所看到的......我已将X.509作为选项删除。我空了一下,忘记了Silverlight中的WS-Security限制。好消息是您可以基于Silverlight中的WS-Security标准实现用户名令牌:
Implementing Username Password & WS-Security with Silverlight
答案 2 :(得分:0)
这是模式和指南的指南。 WCF安全实践团队。那里有很多东西可以找到。
答案 3 :(得分:-1)
不,没有。