从AWS lambda发出的SameSite = Strict Cookie不会发送给子域

时间:2019-08-06 08:34:46

标签: javascript amazon-web-services cookies samesite

我有一个托管在域b.example.com上的AWS Lambda,它通过对a.example.com的{​​{1}}标头向位置set-cookie发送302重定向响应。

Domain=example.com

浏览器在请求headers: { "location": [{ key: "Location", value: 'a.example.com'}], "set-cookie": [{ key: "Set-Cookie", value: `cookie.name=cookie-value; Domain=example.com; Max-Age=${maxAge}; SameSite=Strict; Secure; HttpOnly` }] }, status: "302", statusDescription: "redirect" 时保存cookie(不拒绝),但不发送带有请求标头的cookie。仅当我设置了b.example.com时,它才发送cookie。问题是SameSite=Lax是否不适用于子域?使它起作用的唯一方法是使用SameSite=Strict模式吗?

其他详细信息

我尝试使用2个简单的Lax应用在本地(不包括AWS)复制相同的场景。一个写响应的cookie,另一个读它。

express.js

这些也是在// generator app.get('/', (req, res) => { res.cookie('cookie-name', 'cookie-value', { domain: 'example.com', httpOnly: true, path: '/', sameSite: 'Strict', secure: true }); res.redirect('https://b.example.com:3001'); }); // reader app.get('/', (req, res) => { res.send(`cookies in req ${JSON.stringify(req.cookies)}`); }); https://a.example.com上托管的2个单独的应用程序,带有自签名证书和全部。两个子域都指向127.0.0.1。与此相同的是,它可以解决任何麻烦。

是否有这种差异的原因?

0 个答案:

没有答案