刚刚有位网友在网站上发布了一段代码,类似于 runjs 那样的在线运行功能,然后运行了之后告诉我说 cookie 被截取发送到某某服务器了。我一想这下坏了,cookie 都出去了他岂不是可以用任何人的身份登录了。然后马上改了 secret_key_base。
很明显我多虑了,rails 默认帮我们把 session 的 cookie 设置成 http only 了,所以发送给他的都是无关紧要的 cookie。
这是一个问题,另外一个问题是,当我刷新页面后发现网站打不开了。告诉我说 cookie 过长。
难道他是在我的页面里面写入 cookie 了?果不其然,我在他的代码中发现了一个 for 循环,写入了 n 个 cookie。
我又查了一下,在 chrome 中,每个域的 cookie 个数限制为 53 个。
要是遇到这种情况的话,其他用户点了这样的代码后,怎样去清除这些 cookie 呢。否则所有运行过这段代码的人都打不开网页,岂不是很影响用户体验了。