gpt4 book ai didi

node.js - 避免中间人在后续连接上安全删除 Cookie

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:22:34 25 4
gpt4 key购买 nike

以免想象一个糟糕的情况,攻击者能够在中间设置一个人,显然是为了非安全连接 (HTTP:80)

第一次连接时:

1- cliente request example.com
2- server respond 301 to httpS::/example.com
3- client request https://example.com
4- server send document and a secured cookie (GOOD-COOKIE)
5- client send next request with GOOD-COOKIE
6- server respond based on GOOD-COOKIE

(几天后客户端从同一个浏览器再次连接)

1- client request example.com
X- Attacker intercepts and send document with FAKE-COOKIE (same-name *) and 301 to https
X- client overwrite the GOOD-COOKIE with the FAKE-COOKIE
3- client request https://example.com with FAKE-COOKIE
4- server respond based on FAKE-COOKIE

.* 注意:与攻击者通过 http 传输的同名 Cookie,甚至不安全(不同标志)

虽然安全 Cookie 不会通过 http 传输,但确实可以被来自非 https 连接的同名 cookie 覆盖:sad-very-sad-emoticon

secure 或 httpOnly 标志都不能解决这个问题,HSTS 都不是都不是……

有什么策略可以解决这个问题?

(我们在 node.js 中开发,所以没有 apache/iis/etc.. 限制)

本案例的 Cookie 示例

GOOD-COOKIE (header response)
Set-Cookie: myCookie=myValueCookie; Secure; Path=/

FAKE-COOKIE (header attacker response) Changed from original that server sends
Set-Cookie: myCookie=myValueCookie; Path=/

最佳答案

您最好的选择可能是 HSTS。不确定为什么你会说它在这里不保护你?它将跳过不安全协议(protocol)的连接并直接转到 HTTPS,而不会暴露任何 cookie。

https://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security

这就像发送 header 告诉浏览器仅在您在 max-age 部分中指定的时间内通过 SSL 访问您的网站一样简单。

response.setHeader('严格传输安全', 'max-age=31536000');

(31536000 秒 = 一年)

它不需要任何特殊的服务器或配置。

此外,您可以 create a ruleset对于HTTPS Everywhere .这只会节省一些用户,但为什么不呢?

最后,确保您的 SSL 安装可靠。 SSLLabs太棒了!

关于node.js - 避免中间人在后续连接上安全删除 Cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52443198/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com