是一个javascript bookmarklet,可以设置破坏跨域安全的域cookie
Is a javascript bookmarklet that can set domain cookies breaking cross-domain security?
我正在创建一个bookmarklet,用于广泛的域。我想设置一些cookie来存储这个bookmarklet的临时设置,所以我认为从这个脚本中设置cookie会将cookie分配到脚本的来源域。
事实并非如此,bookmarklet能够将cookie分配到当前正在查看的网站的域。这不适合我的需求(这会记住每个域的设置,而不是所有域的bookmarklet)。
我的问题是,这是否在某种程度上违反了跨领域政策?还有一个后续问题,我如何为bookmarklet存储cookie,而不是为其使用的正确域存储cookie。
Bookmarklet在当前页面的上下文中运行,因此这是它们运行的安全上下文,因此这不会破坏跨域策略。您只能在当前页面的域上设置cookie。正因为如此,你的小书签无法拥有自己的cookie。
这与从各种域加载到给定页面中的脚本相同。重要的是页面的来源,而不是脚本的来源。
据我所知,在所有域中为脚本保存一次设置的唯一方法是使用跨域JSONP并将设置存储在服务器上,但您可能仍然难以识别唯一用户。
听起来你想做的事情更适合于一个有本地存储的浏览器插件。
它不会破坏跨域策略,因为它实际上是在一个单独的域上运行的(这是bookmarklet背后的要点)。
如果你想存储cookie信息,可以使用第三方服务(如中所示,拥有自己的服务器,其中包含接受cookie更改的代码)。请注意,这可能是一个安全问题,因为每个域都可以为您的用户获取cookie,除非您让您的服务只写(我对此表示怀疑)。
还有另一种选择——不要将设置保存在cookie中。请改用其他存储介质。
- 内容安全策略:页面's设置阻止加载资源
- 是一个javascript bookmarklet,可以设置破坏跨域安全的域cookie
- Mootools:拒绝设置不安全的标头“;连接”;
- 如何检测 javascript 文件是否被 IE11 安全设置阻止
- jQuery:Javascript抛出错误“;操作不安全”;设置值时
- 以安全的方式设置nodeJS Transform流的编码
- 业务催化剂原型核心.ashx 拒绝设置不安全的标头“连接”冲突
- 拒绝设置不安全的标头“日期”AngularJS
- 带有设置了安全标志的 cookie 的 GET 请求
- 如何检测IE'脚本化窗口'安全设置已启用/禁用
- PhoneGap中的Cookie标头:拒绝设置不安全的标头“;Cookie”;
- 如何设置安全规则以防止删除firebase中的数据
- IE:通过javascript询问安全设置
- Resharper Ajax设置不安全的标头
- Ajax请求:拒绝设置不安全的标头
- 本地机器上的Javascript -如何在不更改Internet Explorer安全设置的情况下禁用限制
- AngularJS拒绝设置不安全的header " cookie &;
- 播放视频(使用javascript添加)在浏览器内控制原因"错误#2148尝试放松闪存安全设置
- IE 8安全设置禁止javascript发送xmlHTTPRequest
- ECMAScript 6 Map &设置-安全在迭代期间删除