如何解决如何提出不可伪造的跨域请求
|| 我需要从ѭ0到ѭ1的服务器端获取一些数据。为了向“ 0”请求检索数据,需要存在与“ 0”域相关的cookie。我假设因此需要使用JSONP在JavaScript中执行此操作? 我的想法是使用JavaScript向B
发出请求,然后捕获结果并将其粘贴在A
域上,以便后续对ѭ5requests的请求都将cookie与返回的数据一起携带(对A
进行两次请求无关紧要将信息获取到A
的服务器端)。除了可以完全破解之外,这可以正常工作。
数据本身不是秘密,但我需要防止请求伪造或Site A
上的人手动调用JSONP回调函数,或手动对A
cookie进行设置以防止数据被盗用或伪造。另外,黑客还有其他漏洞吗?这也需要预防!
我能想到的唯一方法是:
Site A
生成一个随机令牌并将其存储在会话中。然后,将此令牌附加到Site B
的JSONP请求的查询字符串中。 Site B
然后作出响应,但使用数字签名对常规数据以及令牌进行加密。然后,1ѭ将这个值粘贴到A
的cookie中。在对“ 5”的下一个请求中,“ 5”的服务器端可以捕获cookie,获取其值,对其解密,检查令牌,如果它与会话中的值匹配,则信任其余数据。
听起来合理吗?有更容易的方法吗?我的目标是减少5英镑时的复杂性。
谢谢
解决方法
避免被黑客入侵的方法是让站点直接相互通信,而不是使用客户端JavaScript。编写一个小的轻量级REST API,该API允许在后台将数据传输到服务器之间。
链接到站点A时,在URL中包括一个身份验证令牌,然后可以使用对站点B的幕后调用对其进行检查。此调用可以传输任何其他必需的信息。该令牌可能应该是IP绑定的,并在使用后过期。成功后,您可以在站点A中设置cookie信息,从而避免进行进一步的往返旅行。
,您可以使用easyXDM在域之间进行通信。有了它,您有两个javascript程序,一个在使用者域上,一个在提供程序上,可以断言使用者的域。这两个程序都可以与用户交互,并且用户可以向双方进行身份验证。通过提供者计划了解用户是谁,以及知道消费者是谁,提供者可以将所需的任何数据传递给消费者。
这就是Twitter,Disqus和LinkedIn等大公司使用的API。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。