如何理解cookie的httponly属性? httponly如何避免js读取到cookie?
发布于 作者:苏南大叔 来源:程序如此灵动~苏南大叔的cookie
系列文章,到这里开始讲到cookie
的安全问题。如果你的网站是https
的话,那么强烈建议你启用cookie
的secure
属性。但是无论你的网站是不是https
,但是都强烈建议你启用cookie
的httponly
。具体的启用方法,每个语言都不同,php
启用httponly
的方式,可以参见苏南大叔的相关文章。
httponly简述
httponly
这个词非常的高大上,叱诧江湖很多年。只要是网络安全界,提起xss
取cookie
,就必然提起对应的解决方案httponly
。但是,httponly
真的是啥效果,你知道嘛?这可就未必了。
撕去httponly
的高大上的面纱,一句话进行描述的话,就是:httponly
的cookie
,网页代码中的js
无法获得相关信息。xss
的必需语句,document.cookie
是无法获得httponly
的cookie
的。但是,服务器端是可以照常获得的。
实践一下代码
我们设置了2个cookie
,一个是httponly
的,另外一个不是。
<?php
header("Set-Cookie:only_no=这个没有设置only;",FALSE);
header("Set-Cookie:only=这个设置了only;httponly;",FALSE);
?>
<a href="javascript:alert(document.cookie)">document.cookie</a>
实验结果如下:
我们可以看到,JavaScript
使用document.cookie
,只拿到了一个cookie值,就是没有使用only属性的这个。
总结
本篇内容不是讲xss
的,只是讲述httponly
的。在具体的实践中,xss
是需要构造非常复杂的办法,然后最终执行document.cookie
的。如果以后有机会,苏南大叔可以给大家讲讲xss
实战。不过,这个有些黑客的范畴了。额,洗白一下先,是网络安全的范畴。
更多有关cookie
的精彩内容,请大家关注如下链接:



本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享。
转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议。
未经许可,规模化镜像抄袭本站内容的行为,将会根据有关法律法规进行维权。
《程序如此灵动~》下所有原创文章,如被用于商业用途,请您按规定支付稿费。
转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议。
未经许可,规模化镜像抄袭本站内容的行为,将会根据有关法律法规进行维权。
《程序如此灵动~》下所有原创文章,如被用于商业用途,请您按规定支付稿费。
本站的忠实读者小伙伴,正在阅读下面这些文章: