我想提供jsonp,以便其他网站可以从我的网站获取json数据。我理解,如果我使用cookie来验证用户身份,这将是危险的,因为浏览器会将带有所有请求的cookie发送到我的网站,因此恶意页面可以在不询问用户的情况下对用户的行为进行经过身份验证的请求。
我的服务的所有请求都必须通过请求X-AG-AUTH
上的特殊标头集进行身份验证。必须在该标题中设置标识用户的秘密令牌。
恶意网站是否能够通过jsonp从我的服务获取数据而无需用户提供秘密令牌?
答案 0 :(得分:0)
那么,要求jsonp调用的自定义标头会使jsonp调用对来自其他域的请求无效,因为您的调用者无法设置这些标头。
您可以使用一种类似的方法:要求在POST请求中传递CSRF-prevention-style token作为参数。这将要求您共享生成这些令牌的逻辑和要允许调用端点的每个站点的密钥。当然,如果这些密钥中的任何一个在远程服务器端受到损害,你可能不会知道它,直到为时已晚。
如果您愿意为使用真正旧浏览器的人放弃功能,可以使用regular JSON over CORS *和解析器破解前缀来防止包含跨站点脚本。
我假设您的数据不是您希望公开的内容,在这种情况下,您希望也需要SSL。