代码之家  ›  专栏  ›  技术社区  ›  Michel

如何保护我的服务器方法

  •  5
  • Michel  · 技术社区  · 14 年前

    我刚刚读了一些关于以某种方式隐藏Silverlight代码的文章。 主要结论是,您可以混淆它,但不能真正隐藏它,所以必须在服务器上执行安全操作。 但是,任何人都可以通过fiddler看到发布到特定Web服务的数据类型。例如,他们可以看到我正在调用updateCustomer.asmx。 如果他们这样做了,我能做些什么来阻止他们也叫那个asmx呢? 是否有方法只允许“我的Silverlight应用程序”调用该方法?

    2 回复  |  直到 14 年前
        1
  •  0
  •   JerKimball    14 年前

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

    • 客户端应用程序命中终结点“givemeatoken.asmx”
    • 服务器生成一些密钥令牌
    • 客户端使用所述令牌加密所有调用,并将它们传递到单端点“onlyservice.asmx”
    • 服务器使用令牌解密调用的有效负载,并将调用路由到“真正的”Web服务。
    • 服务器检索调用结果,使用令牌重新加密,并返回到客户端
    • 客户机解密结果并做它需要做的事情。

    但那只是疯狂的谈话……而且有点毫无意义,因为您可以对Silverlight代码本身进行反向工程,以了解“真正的”服务是什么。如果你真的想保护你的应用程序,使用身份验证;在客户端和服务器端(即,对服务的调用需要某种类型的身份验证票据)

        2
  •  1
  •   Scott Wolchok    14 年前

    不。有人可以对您的Silverlight应用程序进行反向工程,以窃取您使用的任何身份验证凭据。你可以让这个逆向工程过程比其他的过程更繁琐,但是你不能让它成为不可能。

    为什么有人从自定义客户端访问您的URL会出现问题?您正在验证 用户 对吧?