【问题标题】:Security on a WCF public web serviceWCF 公共 Web 服务的安全性
【发布时间】:2010-11-19 15:27:41
【问题描述】:

我正在 WCF 中构建一个复杂的公共 Web 服务,该服务将电子邮件发送到特定地址,类似于联系表单,但具有一些功能。 使用 jQuery,我从文本框中获取数据,使用 Ajax 和 json,我将字符串发送到 Web 服务以继续发送。

现在,有什么好方法可以保证它的安全吗?

我的意思是.. 该服务是公开的,因此有人可以访问它并开始在此地址上发送垃圾邮件。我可以限制用户只能从正确的网站使用网络服务吗?

谢谢。

【问题讨论】:

    标签: c# asp.net ajax wcf


    【解决方案1】:

    如果 WCF 服务托管在 IIS 中,则您只能允许来自特定 IP 地址的调用,请查看 IIS 下的目录安全设置。

    【讨论】:

      【解决方案2】:

      到目前为止,最简单的方法是让您的 Web 服务需要某种类型的访问密钥才能运行操作。

      像 base64 编码的 GUID 这样简单的东西就可以了。它甚至不必改变。只需添加一个名为“AccessKey”或类似的参数。让您的应用通过它并让服务验证它是否良好。

      另一个想法是让 Web 服务检查 http 标头以查看它是否来自您授权使用它的页面。


      这些都不是完美的。第一个意味着您的“密钥”将在您发送给客户端的 html 中。第二个可以被欺骗。

      就个人而言,我可能不会在这个级别上打扰,而只是记录服务正在做什么。如果服务的流量开始超过您认为的应有的流量,那么我会研究减轻它的方法。很有可能,鉴于它是一项服务,您不会发现任何问题。

      【讨论】:

      • Stefan P. 的回答也很好。谢谢
      • 如果您在请求中发送了 GUID,并且是通过 SSL 发送的,这会阻止 GUID 被拦截吗?
      • @DanHarris:SSL 通常可以防止中间人攻击。所以是的,这会阻止 GUID 被拦截。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-02-13
      • 1970-01-01
      • 2012-06-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-06
      • 1970-01-01
      相关资源
      最近更新 更多