如何保护我的服务器方法

Mic*_*hel 5 security silverlight

我刚刚读了几篇关于以某种方式隐藏Silverlight代码的帖子.主要结论是你可以对它进行模糊处理,但你无法真正隐藏它,因此必须在服务器上完成安全的事情.但是,任何人都可以通过Fiddler看到哪些数据发布到特定的Web服务.例如,他们可以看到我正在调用UpdateCustomer.asmx.如果他们这样做,我该怎么做才能阻止他们称之为asmx呢?有没有办法只允许"我的Silverlight应用程序"调用该方法?

Jer*_*all 0

我想如果你真的想变得偏执,你可以通过一个 Web 服务端点封送来自客户端应用程序的所有调用并加密有效负载......类似于:

  • 客户端应用程序到达端点“givemeatoken.asmx”
  • 服务器生成一些密钥令牌
  • 客户端使用所述令牌加密所有调用,将它们传递到单个端点“onlyservice.asmx”
  • 服务器使用令牌解密调用的有效负载,并将调用路由到“真实的”Web 服务。
  • 服务器检索调用结果,使用令牌重新加密,然后传回客户端
  • 客户端解密结果并执行其需要执行的操作。

但这只是疯狂的言论......并且毫无意义,因为您可以对 Silverlight 代码本身进行逆向工程以找出“真正的”服务是什么。如果您确实想保护您的应用程序,请使用身份验证;在客户端和服务器端(即,对服务的调用需要某种身份验证票证)