我需要从Site B
得到一些数据Site A
的服务器端跨域请求。为了使请求Site B
检索数据,存在与需要存在的Site B
的域相关的cookie。我认为我需要在JavaScript中使用JSONP来做到这一点?如何使心不是伪造
我的想法是使用JavaScript向B
发出请求,然后捕获结果并在A
的域中将其粘贴到cookie上,以便后续请求A
将携带返回数据的cookie(它并不重要向A
发送两个请求,以获取信息到A
的服务器端)。这将工作得很好,除非它完全可以破解。
数据本身并不是秘密,但我需要防止请求伪造或Site A
上的人员手动调用JSONP回调函数,或者手动设置A
cookie与被盗或伪造的数据。另外,还有没有其他的黑客攻击漏洞?这也需要预防!
我能想到这样做的唯一方法是:
Site A
产生会话随机令牌并将其存储。然后它将此令牌附加到JSONP请求的查询字符串Site B
。然后Site B
响应,但使用数字签名将通常的数据与令牌一起加密。然后Site A
将此值粘贴在A
的cookie中。在A
的下一个请求中,A
的服务器端可以捕获cookie,获取值,解密,检查令牌以及它是否与会话中的值匹配,相信其余数据。
这听起来合理吗?有更容易的方法吗?我的目标是在A
的最后减少复杂性。
感谢
你是否在控制这两个网站?即你可以在两个域中进行代码更改吗? – 2011-04-14 07:59:22
听起来像你刚刚重新创建公钥密码术!看到这里:http://en.wikipedia.org/wiki/Public-key_cryptography#A_postal_analogy – bdares 2011-04-14 08:00:45
@bdares不,我没有,因为这仍然不能防止伪造。什么阻止我偷别人加密repsonse和自己使用它? – 2011-04-14 08:04:40