JavaScript Cookie 涨姿势了

hxh1246996371 · 2015年06月26日 · 最后由 wwwicbd 回复于 2017年11月27日 · 2850 次阅读

刚刚有位网友在网站上发布了一段代码,类似于 runjs 那样的在线运行功能,然后运行了之后告诉我说 cookie 被截取发送到某某服务器了。我一想这下坏了,cookie 都出去了他岂不是可以用任何人的身份登录了。然后马上改了 secret_key_base。

很明显我多虑了,rails 默认帮我们把 session 的 cookie 设置成 http only 了,所以发送给他的都是无关紧要的 cookie。

这是一个问题,另外一个问题是,当我刷新页面后发现网站打不开了。告诉我说 cookie 过长。

难道他是在我的页面里面写入 cookie 了?果不其然,我在他的代码中发现了一个 for 循环,写入了 n 个 cookie。

我又查了一下,在 chrome 中,每个域的 cookie 个数限制为 53 个。

要是遇到这种情况的话,其他用户点了这样的代码后,怎样去清除这些 cookie 呢。否则所有运行过这段代码的人都打不开网页,岂不是很影响用户体验了。

浏览器设置里面不是有清除 cookie 的地方么?

#1 楼 @blacktulip 关键是其他用户不知道啊

所以放别人的 JS 要小心啊,放 XSS 是为何,就是这种情况呀

#3 楼 @huacnlee 的确是,全靠用户找 bug

大 cookie 是可以搞攻击的,中间人,插入大 cookie

http only 后 JS 就读取不到了

#6 楼 @miclle 嗯,这个倒不是问题,问题是别人往发布的代码里写入了很多 cookie,然后其他用户打开这段代码后就打不开网站了

#7 楼 @hxh1246996371 别人的代码里能够往你的网站写很多 cookie?

#8 楼 @jayliud 类似于 runjs 那样的在线运行代码的功能

huacnlee 回复

您好,请问: 按楼主说的情况,第三方的 JS 写入 Cookie, 被限制到那个第三方的 domain 下面,请求自己的页面是不携带这些写入信息的吧. 为什么还会出现楼主说的问题呢?

需要 登录 后方可回复, 如果你还没有账号请 注册新账号