如何保护我的服务器:方法

5
我刚刚读了一些有关隐藏Silverlight代码的帖子。主要结论是,你可以混淆它,但你真正不能隐藏它,因此必须在服务器上进行安全措施。但是,任何人都可以通过Fiddler看到向特定Web服务发布的数据类型。例如,他们可以看到我正在调用UpdateCustomer.asmx。如果他们这样做,我该怎么办才能阻止他们也调用那个asmx呢?是否有一种方法只允许“我的Silverlight应用程序”调用该方法?
2个回答

1

不行。有人总是可以反向工程您的 Silverlight 应用程序,以窃取您使用的任何身份验证凭据。您可以使此反向工程过程比原本更加繁琐,但无法使其变得不可能。

如果有人从自定义客户端访问您的 URL,这会成为问题吗?您正在对用户进行身份验证,对吧?


不,这种情况下用户没有通过身份验证。 - Michel

0

如果你真的想要非常谨慎,你可以通过一个 Web 服务端点来编排客户端应用程序的所有调用,并加密有效载荷...就像这样:

  • 客户端应用程序访问端点 "givemeatoken.asmx"
  • 服务器生成一些关键令牌
  • 客户端使用该令牌加密所有调用,将它们传递到单个端点 "onlyservice.asmx"
  • 服务器使用令牌解密调用的有效载荷,并将其路由到 "真实" Web 服务。
  • 服务器检索调用结果,使用令牌重新加密,并传递回客户端
  • 客户端解密结果并执行所需操作。

但那只是疯狂的想法...而且有点毫无意义,因为你可以反向工程 Silverlight 代码本身,以找出 "真实" 服务。如果你真的想保护你的应用程序,使用身份验证;在客户端和服务器端都使用身份验证(即,对服务的调用需要某种身份验证票据)


谢谢,我会实现认证机制。 - Michel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接