防止跨域请求到我的wcf服务

时间:2011-07-02 19:51:23

标签: c# wcf security cross-domain

我使用wcf ui服务在我的javacsript(jquery)和服务器端代码之间进行通信。我发现这项工作有效。

但是我想让它更安全。我可以设置wcf,以便只能在同一个域内对服务发出请求,以防止外部客户端向我的服务发出此类请求。

例如,我的服务操作网址为http://www.website.com/Service.svc/GetProducts。我想设置wcf,以便只允许来自http://www.website.com中页面的请求。我认为这是跨域wcf请求的领域,但需要一些帮助来设置它。帮助会很棒。

1 个答案:

答案 0 :(得分:5)

如果您的服务暴露在网络上,这是不可能的。

如果您的服务有些不够安全,那么您应该考虑解决这个问题 - 而不是试图阻止人们提出请求。

任何人都可以使用像Fiddler,Charles等调试代理或者像WireShark这样的工具将他们想要的任何数据发送到您的服务 - 包括完整重播通过浏览器发出的请求。 (包括引荐来源的http标题等)。

如果您的情况允许,也许您可​​能会考虑使用VPN设备或类似设备,并限制对网络内用户的访问(或通过VPN进入)。通过这种方式,关注您的服务安全性.... 然而已知的事实是“内部攻击者”同样普遍,如果不是更多,比外面的......所以不要太舒服。

让我在通行证上解决这个问题,而我却在这里;有人可能会建议浏览器已经阻止了这样的跨站点脚本。是的,这是真的。但通常是另一个应用程序的开发人员添加客户端脚本来调用这些服务 - 他/她可以在服务器端轻松地发出请求并将结果代理到客户端。