gpt4 book ai didi

Javascript - document.cookie 的安全性

转载 作者:行者123 更新时间:2023-11-29 16:47:01 25 4
gpt4 key购买 nike

我有一个使用 AWS CloudFront API 和 Lambda 创建 Cloud Front cookie 的应用程序。不幸的是,我无法使用标准 HTTP 响应格式设置 cookie,而必须使用 document.cookie 从 HTML 页面向用户的浏览器设置 cookie。 cookie 包括授权访问内容的策略、确认 cookie 真实性的签名和 key 对 ID。 Lambda 上的后端脚本创建 cookie 并将其作为有效载荷发送给请求者,然后作为变量传递给 document.cookie。

我已经阅读了很多有关保护 cookie(HttpOnly、 session cookie、安全标志等)的文章,并且我正在尝试了解 document.cookie 的安全风险。在安全上下文中,通过 Http 响应和 document.cookie 设置 cookie 之间有区别吗?恶意用户是否有可能将他们自己的策略插入到 cookie 中,因为 cookie 是在客户端创建的,尽管页面是只读的,但他们仍然可以访问其他内容?

这里有一些代码供引用:

payload = data["Payload"]
jsoned = JSON.parse(payload)
cookie = jsoned['cookie']
redirectUrl = jsoned['redirectUrl']

document.cookie = 'CloudFront-Policy' + "=" + cookie['CloudFront-Policy'] + "; path=/mydirectory";
document.cookie = 'CloudFront-Key-Pair-Id' + "=" + cookie['CloudFront-Key-Pair-Id'] + "; path=/mydirectory"
document.cookie = 'CloudFront-Signature' + "=" + cookie['CloudFront-Signature'] + "; path=/mydirectory"

我第一次发帖。我在这里先向您的帮助表示感谢。

-肯

最佳答案

Is there a difference between setting cookies through Http response and document.cookie in the context of security?

不是真的。可以使用 httponly 设置 HTTP cookie,但这只是针对 XSS 的非常薄弱的​​缓解措施,本身并不是真正适当的安全措施。

Would it be possible for a malicious user to insert their own policy into the cookie as the cookie is created client-side

是的,但它已经用于 HTTP cookie;它们都存储在客户端,因此不受信任的客户端可以访问。

这就是签名的用途,对吧?如果正确实现,它应该可以防止篡改其签名的内容。

关于Javascript - document.cookie 的安全性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40051513/

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