最近在用python的flask框架写东西,顺便把httponly的作用拿出来说下,主要是防止XSS漏洞***。

以下hello.py都是用flask写的

wKioL1RHVVjgMx2WAAEL-jYlx7k916.jpg

代码里加入两个cookie值,其中一个带有httponly标签,另一个不带httponly标签。

index.html里就是一句简单的XSS测试js代码

<html>
<h1>This page contains a cookie!</h1>
<script type="text/javascript">alert(document.cookie)</script>
</html>

启动flask的web server

python hello.py

访问http://192.168.118.142:5000/login  

wKiom1RHV02T7rcSAAEPrOJ73uw584.jpg


alert弹框只获取到了第一个cookie里的session id和值。可以用chrome插件看看http response header

wKioL1RHWH3SJ3IHAANHYLE_5Fo347.jpg

第二条cookie因为有了httponly的标签,所以没有被获取到。

由此我们可以看到httponly对XSS***的作用,但是凡事不是绝对的,有些特定情况还是可以绕过,以后再分析一下。good luck!