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"/>

来实现这个设置.

Web.config文件中关于Cookie安全性的考量和设置的更多相关文章

  1. 如何在web.config文件中配置Session变量的生命周期

    实例说明:在网上购物商城中,为了维护在线购物环境,一般只有注册会员才可以购买商品.实现购物功能时,先通过Session变量记录会员的登录名,然后在购买商品页面通过判断会员是否登录确定其能否购买商品. ...

  2. 在Web.Config文件中使用configSource,避免动态修改web.config导致asp.net重启(另添加一个Config文件用于管理用户数据)

    原文:在Web.Config文件中使用configSource,避免动态修改web.config导致asp.net重启(另添加一个Config文件用于管理用户数据) 我们都知道,在asp.net中修改 ...

  3. Web.config 文件中的 system.webServer

    Web.config 文件中的 system.webServer 节用于指定适用于 Web 应用程序的 IIS 7.0 设置.system.WebServer 是 configuration 节的子级 ...

  4. web.config文件中配置数据库连接的两种方式

    web.config文件中配置数据库连接的两种方式 标签: 数据库webconfig 2015-04-28 18:18 31590人阅读 评论(1)收藏举报    分类: 数据库(74)  在网站开发 ...

  5. Web.Config文件中使用configSource

    我们都知道,在asp.net中修改了配置文件web.config后,会导致应用程序重启,所有会话(session)丢失.然而,应用程序的配置信息放在配置文件里是最佳选择,在后台修改了配置后导致所有会话 ...

  6. 在web.Config文件中添加数据库连接配置

    新建一个网站,打开web.config文件,在connectionString配置节点添加add节点进行数据库进行数据库连接配置代码如下: <connectionStrings> < ...

  7. 使用mvc时,在视图view中使用强类型视图,在web.config文件中添加命名空间namespace的引用不起作用,解决方法

    这是view中的model代码: @model t_user_info 这是web.config配置文件只的代码: <namespaces> <add namespace=" ...

  8. Web.Config文件中添加数据库配置文件

    1获取所有配置文件节点的类ConfigurationManager 2数据库节点<ConnectionStrings> <add> name ="Sqlconnect ...

  9. C#中web.config文件详解

    C#中web.config文件详解 一.认识Web.config文件 Web.config 文件是一个XML文本文件,它用来储存 ASP.NET Web 应用程序的配置信息(如最常用的设置ASP.NE ...

随机推荐

  1. LoadRunner hits per second 深入理解

    Hits per Second Graph The Hits per Second graph shows the number of HTTP requests made by Vusers to ...

  2. Eclipse项目中引用第三方jar包时将项目打包成jar文件的两种方式

    转载自:http://www.cnblogs.com/lanxuezaipiao/p/3291641.html 方案一:用Eclipse自带的Export功能 步骤1:准备主清单文件 “MANIFES ...

  3. java基本类型和包装类的区别(转)

    int 是基本类型,直接存数值 Integer是类,产生对象时用一个引用指向这个对象 Java把内存划分成两种:一种是栈内存,另一种是堆内存 在函数中定义的一些基本类型的变量和对象的引用变量都是在函数 ...

  4. ubuntu16.04+cuda8.0+cudnn5.0+caffe

    ubuntu安装过程(硬盘安装)http://www.cnblogs.com/zhbzz2007/p/5493395.html“但是千万不要用麒麟版!!!比原版体验要差很多!!!”开关机的时候电脑最上 ...

  5. svn 出现冲突时可以使用 meld . 命令合并。 而git的冲突合并详见内容

    1.可以在任意目录使用 git mergetool --tool-help    查看 git 所支持的merge tools. 2.可以使用如下配置去设置merge tool 和 diff tool ...

  6. 《转》使用nginx和php实时产生缩略图

    在做自动静态化的时候,突然想到下面这个场景,也给出了解决方法.亲,真的很实用,耐心看下去.     当我从后台上传一个截图之后,480*800的截图之后,当时就没有压缩出320*480的小缩略图.好吧 ...

  7. (转).NET基础拾遗(5)多线程开发基础

    https://www.cnblogs.com/edisonchou/p/4848131.html

  8. 微信小程序开发:学习笔记[2]——WXML模板

    微信小程序开发:学习笔记[2]——WXML模板 快速开始 介绍 WXML 全称是 WeiXin Markup Language,是小程序框架设计的一套标签语言,结合小程序的基础组件.事件系统,可以构建 ...

  9. 7-3 堆栈模拟队列(25 point(s)) 【数据结构】

    7-3 堆栈模拟队列(25 point(s)) 设已知有两个堆栈S1和S2,请用这两个堆栈模拟出一个队列Q. 所谓用堆栈模拟队列,实际上就是通过调用堆栈的下列操作函数: int IsFull(Stac ...

  10. springboot 默认tomcat配置

    1. Spring Boot 能支持的最大并发量主要看其对Tomcat的设置,可以在配置文件中对其进行更改.当在配置文件中敲出max后提示值就是它的默认值. 我们可以看到默认设置中,Tomcat的最大 ...