Web.config文件中关于Cookie安全性的考量和设置
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安全性的考量和设置的更多相关文章
- 如何在web.config文件中配置Session变量的生命周期
实例说明:在网上购物商城中,为了维护在线购物环境,一般只有注册会员才可以购买商品.实现购物功能时,先通过Session变量记录会员的登录名,然后在购买商品页面通过判断会员是否登录确定其能否购买商品. ...
- 在Web.Config文件中使用configSource,避免动态修改web.config导致asp.net重启(另添加一个Config文件用于管理用户数据)
原文:在Web.Config文件中使用configSource,避免动态修改web.config导致asp.net重启(另添加一个Config文件用于管理用户数据) 我们都知道,在asp.net中修改 ...
- Web.config 文件中的 system.webServer
Web.config 文件中的 system.webServer 节用于指定适用于 Web 应用程序的 IIS 7.0 设置.system.WebServer 是 configuration 节的子级 ...
- web.config文件中配置数据库连接的两种方式
web.config文件中配置数据库连接的两种方式 标签: 数据库webconfig 2015-04-28 18:18 31590人阅读 评论(1)收藏举报 分类: 数据库(74) 在网站开发 ...
- Web.Config文件中使用configSource
我们都知道,在asp.net中修改了配置文件web.config后,会导致应用程序重启,所有会话(session)丢失.然而,应用程序的配置信息放在配置文件里是最佳选择,在后台修改了配置后导致所有会话 ...
- 在web.Config文件中添加数据库连接配置
新建一个网站,打开web.config文件,在connectionString配置节点添加add节点进行数据库进行数据库连接配置代码如下: <connectionStrings> < ...
- 使用mvc时,在视图view中使用强类型视图,在web.config文件中添加命名空间namespace的引用不起作用,解决方法
这是view中的model代码: @model t_user_info 这是web.config配置文件只的代码: <namespaces> <add namespace=" ...
- Web.Config文件中添加数据库配置文件
1获取所有配置文件节点的类ConfigurationManager 2数据库节点<ConnectionStrings> <add> name ="Sqlconnect ...
- C#中web.config文件详解
C#中web.config文件详解 一.认识Web.config文件 Web.config 文件是一个XML文本文件,它用来储存 ASP.NET Web 应用程序的配置信息(如最常用的设置ASP.NE ...
随机推荐
- 五个知识体系之-SQL语句大全
一.基础 1.说明:创建数据库CREATE DATABASE database-name 2.说明:删除数据库drop database dbname3.说明:备份sql server--- 创建 备 ...
- JAVA中equals()与==的区别详解
在进行判断操作时,常常会用到==或者equals()进行等价判断,那么两者究竟有什么区别呢,下面整理一下个人理解. 简单介绍: ==是一种引用相等性比较符,判断引用到堆上同一个对象的两个引用是相等的. ...
- 【题解】[CJOI2019Chebnear]
[题解][CJOI2019Chebnear] 题目描述 给定平面上有\(n\)个仇人,\((x,y) ,x,y \in R^+\) ,\(n\)个人都是仇人关系,而有仇人关系的一对人的切比雪夫距离若\ ...
- Intellij Idea生成JavaDoc
JavaDoc是一种将注释生成HTML文档的技术,生成的HTML文档类似于Java的API,易读且清晰明了.在简略介绍JavaDoc写法之后,再看一下在Intellij Idea 中如何将代码中的注释 ...
- JVM GC调优一则--增大Eden Space提高性能
版权声明:本文为横云断岭原创文章,未经博主同意不得转载.微信公众号:横云断岭的专栏 https://blog.csdn.net/hengyunabc/article/details/24924843 ...
- CALL FUNCTION 'BAPI_PO_CREATE1' 相关报错
*&---------------------------------------------------------------------**& Report ZQJ06*&am ...
- mysql服务器启动问题
The server quit without updating PID file (/usr/local/mysql/data/snsgou.pid);可能的情况是启动的用户不对,
- PAT天梯赛 L2-002. 链表去重 【STL】
题目链接 https://www.patest.cn/contests/gplt/L2-002 思路 用结构体 存储 一个结点的地址 值 和下一个地址 然后从首地址开始 往下走 并且每个值的绝对值 都 ...
- g2o的一般过程
1.自己定义顶点类.边类或者用已经有的.1.1定义顶点例子class CurveFittingVertex: public g2o::BaseVertex<3, Eigen::Vector3d& ...
- 最短路径问题----Dijkstra算法的解释
先上图: 现在要找到地点V1到其余各个地点的最短路径(图中数字的单位默认为km.).有一个原则是:永远找最小,确保无更小. 第一步:v1->v1,v1->v2,...v1->v7的距 ...