我已经建立了一个网站(A),它从一个单独的Web服务登录并检索客户数据.
拥有(A)的组织也有一个网站(B),它有一个网络表格.他们希望(A)上的登录客户能够点击(B)并查看预先填充的表格及其详细信息.
这意味着(A)必须将他们的客户ID写入cookie,(B)可以读取,然后(B)可以从Web服务请求数据,并预先填充表单.
这提出了两个问题:
网站(B)可以阅读网站(A)的cookie吗?
如果是这样,为了防止某人编辑cookie并在表单中看到其他人的数据,我需要做一些事情,比如加密(A)上的cookie,然后在(B)中解密 - 这条线上的任何建议?
我无法将现有登录更改为OAuth或其他内容,因为Web服务被其他几个站点使用,因此无法更改.
Chr*_*tal 22
不可以.网站B无法从网站A读取cookie.
最简单的解决方法是将登录/凭证信息从网站A传递到网站B,并让网站B设置单独的cookie.例如,登录到网站A后,您可以使用加密的查询字符串快速将其重定向到网站B. 然后,网站B可以读取信息,设置自己的cookie,并将用户重定向回站点A.
这很麻烦,但可能.
Ted*_*ham 21
你提到同一家公司拥有这两个网站.如您所料,如果网站具有相同的域名,如www.mycompany.com和store.mycompany.com,那么他们可以共享Cookie.HTTP响应头看起来像这样:
Set-Cookie: user_id=1295214458; Path=/; Domain=.mycompany.com
Run Code Online (Sandbox Code Playgroud)
由于客户端可以直接访问此数据,因此您还应该包含签名,以便检测到篡改.通常整个事情都被加密并签名为"令牌",并将其设置为cookie.但从技术上讲,只需签名即可.
如果在您的情况下,您的所有用户都使用支持HTML5的浏览器,您可以使用window.postMessage允许addEventListener在一侧和另一侧的方法postMessage.这是一篇很好的文章/示例:https://developer.mozilla.org/en-US/docs/Web/API/window.postMessage.
然后步骤很简单:
| 归档时间: |
|
| 查看次数: |
39620 次 |
| 最近记录: |