我正在WCF中构建一个复杂的公共Web服务,它将电子邮件发送到特定地址,类似于联系表单但具有某些功能。 使用jQuery,我从文本框中获取数据,使用Ajax和json,我将发送到Web服务的字符串继续发送。
现在,有没有一种方法可以确保安全?
我的意思是......该服务是公开的,因此有人可以访问它并开始在此地址上发送垃圾邮件。我是否可以限制用户仅从正确的网站使用Web服务?
感谢。
答案 0 :(得分:6)
如果WCF服务托管在IIS中,您只允许来自特定IP地址的呼叫,请查看IIS下的目录安全设置。
答案 1 :(得分:3)
到目前为止,最简单的方法是让您的Web服务需要某种类型的访问密钥才能运行该操作。
像base64编码的GUID这样简单的东西可行。它甚至不需要改变。只需添加一个名为“AccessKey”的参数或类似的东西。让你的应用程序通过它,并让服务验证它是好的。
另一个想法是让Web服务检查http标头,看它是否来自您授权使用它的页面。
这些都不是完美的。第一个意味着您的“密钥”将在您发送给客户端的html中。第二个可能是欺骗性的。
就个人而言,我可能不会在这个级别上烦恼,只记录服务正在做什么。如果服务的流量开始超过您认为应该达到的水平,那么我将研究减轻它的方法。最有可能的是,鉴于它是一项服务,你不会看到任何问题。