假设一个Web应用程序(通过http提供)有一个标签,其中src是另一个域。外部脚本正在使用cookie和/或localStorage。它可以访问哪些域名的cookie?
<!-- on example.org -->
<script src='http://anotherexample.org/script.js'> <!-- This script messes with cookies -->
我的直觉告诉我它操作的cookie是属于example.org的。但这是如何运作的?
答案 0 :(得分:4)
你的直觉非常正确。 Cookie是在浏览器开始实施相同的原始策略限制之前创建的,因此这些策略是not generally protected。因此,当anotherexample.org
提供的脚本访问document.cookie
时,它会在原始HTTP响应中看到example.org
传递的Cookie。
唯一重要的例外是"HttpOnly" cookies。如果example.org
选择,它可以指定它作为“HttpOnly”提供的cookie;任何JavaScript代码都无法访问这些Cookie,无论是anotherexample.org
还是example.org
本身。