2011-11-17 43 views
3

我有一个支持SOAP/JSON/XML的WCF API,但是我们不提供JSONP。 这意味着如果有人想要使用JSON来使用我们的API,他们必须创建一个服务器端代理以避开跨浏览器的限制。JSONP是你的API必须的吗?

我有点像这样,因为它阻止用户将API密钥和秘密放在客户端代码中。虽然大多数方法接受和访问令牌,但我们有auth方法,要求消费者发送密钥和秘密来获取此访问令牌。如果我们公开JSONP,一些消费者可能会向客户端请求这个请求,我对此并不感到激动。

所以......如果你有一个支持JSON的API,支持JSONP是非常重要的。 要求消费者创建服务器端代理是否可怕?

JSONP不难实现,但由于上述原因,我很犹豫。 有点刚刚寻找想法/建议。 感谢

+0

这完全取决于您正在寻找什么样的消费者。 – SLaks

+0

感谢您的回复。这很有道理! 我们有合作伙伴使用所有不同的语言与我们的系统进行交互。 PHP,.NET以及喜欢JavaScript的前端开发人员。我们的合作伙伴可以利用我们从API获取的数据制作各种应用程序。所以我想让这个API尽可能地让消费者尽可能多地使用这些API,这就是为什么我要公开JSONP的原因 - 但不知道我是否有这样做的有效安全问题。 –

回答

1

你可以让特殊身份验证密钥,只有拥有JSONP工作,然后返回的Javascript来检查location并确保将已授权密钥使用有效的网站。

但是,这不会阻止恶意服务器发送JSONP请求并解析出JSON。

您需要弄清楚您的合作伙伴需要什么以及攻击者可以做什么在可用性和安全性之间做出权衡。

+0

我们可以聊聊吗?我有一个新的JSON api,我正在尝试获取有关安全措施的专家意见。如果你不介意聊天,我很想破解你的大脑半小时左右。 –

相关问题