如何强制通过http客户端拨打休息服务?

时间:2015-05-22 14:46:33

标签: rest security http asp.net-web-api httpclient

注意事项:

首先,我正在寻找程序化/自动化解决方案,而不是个人解决方案。我担心这个问题没有直接的答案,因为技术,所以我会检查任何解决方法来进行验证。

情景:

我的客户(第三方应用程序)可以使用的公共REST服务。

它具有身份验证基本(在标头中),POST有一个参数,其中包含SHA-256中的加密字符串,其数据在其他参数中发送,以验证数据。 这个加密的字符串由我提供的哈希密钥为每个客户制作,因为有些客户是他们之间的竞争对手。 总之...

问题:

有些客户直接从ajax访问服务,而不是使用服务器端的http客户端。他们在javascript中使用hashkey和user / pass,并提防我的建议,他们的代码没有变化。因此,我们不会在生产环境中启用它们。

问题:

它可能(我怎么做?)验证呼叫是否来自服务器端而不检查URL引用?

就像评论一样,我在C#中使用Web Api 2.2,但我认为我可以自己处理代码,所以任何没有代码的答案都会有用。

我担心没有任何答案,因为客户是相同的,但任何一些解决方法或想法都会被预先确定。

对不起我的英语和我对HTTP客户端的了解不足。

1 个答案:

答案 0 :(得分:0)

如果您可以描述为什么客户使用ajax是一个问题 - 将更容易猜测一般解决方案。例如,您可以创建注册服务,您的客户必须在其中指定其IP,以便将其列入白名单,或者您可以创建所有客户应使用的客户端身份验证库。