Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通过不受信任的域将cookie向下传递到iframe(禁用第三方cookie)_Javascript_Security_Cryptography - Fatal编程技术网

Javascript 通过不受信任的域将cookie向下传递到iframe(禁用第三方cookie)

Javascript 通过不受信任的域将cookie向下传递到iframe(禁用第三方cookie),javascript,security,cryptography,Javascript,Security,Cryptography,这是我们遇到的一个场景 假设我们有: 一些不受信任的域,untrusted.com 我们拥有完全控制权的受信任域,trusted.com 给出了以下内容: untrusted.com页面上有一个从trusted.com加载的javascript脚本,因此trusted.com可以完全控制untrusted.com 此javascript文件在untrusted.com页面上创建一个iframe,指向trusted.com 用户浏览器处于禁用第三方Cookie的模式,因此iframe无法访问

这是我们遇到的一个场景

假设我们有:

  • 一些不受信任的域,
    untrusted.com
  • 我们拥有完全控制权的受信任域,
    trusted.com
给出了以下内容:

  • untrusted.com
    页面上有一个从
    trusted.com
    加载的javascript脚本,因此
    trusted.com
    可以完全控制
    untrusted.com
  • 此javascript文件在
    untrusted.com
    页面上创建一个iframe,指向
    trusted.com
  • 用户浏览器处于禁用第三方Cookie的模式,因此iframe无法访问
    trusted.com上设置的任何Cookie
  • 我们希望使来自
    trusted.com
    的会话cookie在iframe中可用
  • 我们绝对不能允许
    untrusted.com
    查看此会话cookie的值
  • 我们不能只加密它并通过
    untrusted.com
    ,因为这将允许
    untrusted.com
    拦截并重播它
所以问题是,我们如何让会话cookie以这样的方式运行:

a) 我们100%确信
untrusted.com
不会重播它


b) 我们100%确定
untrusted.com
无法读取cookie的原始值

首页无法看到iframe或其页面内的变量或cookie。是的,我知道。我的问题是,我希望能够以某种方式通过父页面手动传递cookie。这是一种框架处于第三方cookies禁用模式的情况,因此它无法单独访问cookies。很久以前,为了安全起见,kings会雇佣知道如何书写但不会阅读的抄写员(是的,这是可能的),但JS中没有类似的情况:如果你给某人一些东西,他们可以看到它,为什么不直接将信息打印到框架页面而不是使用cookies?请记住,从
trusted.com
加载的JavaScript将无法访问
trusted.com
上用户的cookies,因为此JavaScript请求将被归类为第三方请求。解决这个问题的唯一方法是打开一个弹出窗口,这将需要用户单击以击败弹出窗口阻止程序。然后您会遇到将会话标识符从弹出窗口传递到IFrame的问题,我希望它会被阻止。乱七八糟的,而且我认为这不管用。是的。请记住,我们可以控制
trusted.com
服务器端,因此如果需要启用CORS或JSONP端点,我们可以这样做。但还是不确定我们会让它返回什么。