首页 技术 正文
技术 2022年11月21日
0 收藏 367 点赞 2,348 浏览 1645 个字

cookie的内容,如图所示:

HTTP response header:

Set-Cookie: <name>=<value>[; <Max-Age>=<age>][; expires=<date>][; domain=<domain_name>]=[; path=<some_path>][; secure][; HttpOnly]

1                      2                                   3                                4                                5                            6            7

由上面可以看到,一个Cookie包含上面7个信息

1) Cookie名称:  cookie名称必须使用只能用在URL中的字符。 一般用字母和数字,不能包含特殊字符。

2) Cookie的值: 该值可以进行转码和加密 (javascript中通过escape,unescape进行转码)

3) Expires: 这个Cookie的过期日期,是一个GMT格式的时间。当过了这个时间之后,浏览器就会将这个Cookie删除掉. 如果没有这个设置,Cookie会在浏览器关闭后消失。

4) Domain:  子域,指定在该子域才可以访问Cookie. 比如要让Cookie在a.test.com下可以访问,但在b.test.com下不能访问,则可以将domain设置成a.test.com

5) Path: 一个路径,在这个路径下面的页面才可以访问该Cookie. 一般设为”/”, 以此表示同一个站点的所有页面都可以访问这个Cookie.

6)Secure: 安全性,指定Cookie是否只能通过https协议访问。一般的Cookie使用http协议就可以访问。如果设置Secure值为true,则只有当使用https协议连接时,该Cookie才可以被页面访问.

7) HttpOnly:  这个属性设置很重要,设置了HttpOnly=true, 就限制了非HTTP的API(eg: javascript,applet)访问该cookie. 也就是说通过程序(JS脚本,Applet等)将无法读取到该Cookie信息。这个设置,就防止了javascipt等脚本语言的XSS(跨站脚本攻击).

因为HttpOnly=true时,前端脚本就无法访问或操作cookie了(只能通过后台访问),这样XSS就失效了。但cookie在传递过程中被盗窃的威胁并没有解除(需要设置Secure属性). 另外,该项设置仅仅适用于会话管理的Cookie,而不是其他的浏览器        Cookies.

setcookie("abc","test",NULL,NULL,NULL,NULL,TRUE);
<script>alert(document.cookie);</script>
这里,弹出的框里面,什么内容都没有setcookie("abc","test");
<script>alert(document.cookie);</script>
这里,弹出的框里面,有这个cookie的值

现在,我们再来说说第(6)个属性,secure属性

当设置为true时,表示创建的Cookie会被以安全的形式向服务器传输,也就是只能在HTTPS连接中被浏览器传递到服务器端进行会话验证。如果连接是HTTP连接,则不会传递该信息,也就不会盗取到Cookie的具体内容.

所以:

secure属性是防止信息在传递的过程中被监听捕获后信息泄漏。 6号位true

HttpOnly属性的目的是防止前端脚本程序获取cookie后进行攻击。7号位true

在.net项目的web.config中, 在<system.web></system.web>节点中增加内容:

<httpCookies httpOnlyCookies=”true” requireSSL=”true”/>

来实现这个设置.

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,104
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,580
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,428
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,200
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,835
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,918