cookie

django(五):cookie和session

只谈情不闲聊 提交于 2019-12-24 02:30:17
一、Cookie   1、cookie机制    会话(Session)跟踪是Web程序中常用的技术,用来 跟踪用户的整个会话 。常用的会话跟踪技术是Cookie与Session。 Cookie通过在客户端记录信息确定用户身份 , Session通过在服务器端记录信息确定用户身份 。    在程序中,会话跟踪是很重要的事情。理论上, 一个用户的所有请求操作都应该属于同一个会话 ,而另一个用户的所有请求操作则应该属于另一个会话,二者不能混淆。例如,用户A在超市购买的任何商品都应该放在A的购物车内,不论是用户A什么时间购买的,这都是属于同一个会话的,不能放入用户B或用户C的购物车内,这不属于同一个会话。   而Web应用程序是使用HTTP协议传输数据的。 HTTP协议是无状态的协议。一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接。这就意味着服务器无法从连接上跟踪会话 。 即用户A购买了一件商品放入购物车内,当再次购买商品时服务器已经无法判断该购买行为是属于用户A的会话还是用户B的会话了。要跟踪该会话,必须引入一种机制。   Cookie就是这样的一种机制。它可以弥补HTTP协议无状态的不足。在Session出现之前,基本上所有的网站都采用Cookie来跟踪会话。   关于cookie,需要记住几点:     - 1

Cookie不能保存中文解决方式

心不动则不痛 提交于 2019-12-24 02:13:37
 在用cookie保存username的时候,发现cookie值不能存中文,报例如以下错: Control character in cookie value, consider BASE64 encoding your value 发生错误在:response.addCookie(cookie); 在曾经的编程中也碰到过这种问题,主要是cookie值里面存在非法參数,如存在”\r\n”、”\n”之类的字符时就报报这种错,但我就个username啊,不存在像这些字符啊,无论,我把cookie值设为一个默认的中文username,执行看是否出问题,果不其然,出现相同的错误,结果知道,cookie中不能保存中文。 最后想想把中文转换为UTF-8字符串进行保存应该没问题,即用 URLEncoder.encode(“中文username”,”UTF-8″)); 这样把中文username转换为UTF-8字符串,执行时通过。在最后接收这个值的时候,用URLDecoder.decode(cookies.getValue(),”UTF-8″);来解码得到我要的中文username。 URLEncode及URLDecode在包java.net里面。 来源: https://www.cnblogs.com/hrhguanli/p/3946158.html

设计模式(一)适配器模式与外观模式

回眸只為那壹抹淺笑 提交于 2019-12-24 02:05:21
  这两天刚把适配器模式与外观模式学习了一遍,记录一下自己在学习中的思考。 适配器设计模式与外观设计模式所涉及到的一个设计原则:   最少知识原则:不要让太多的类耦合在一起,以免当修改了某一部分后,会影响到其他部分。   对于任何对象而言,在该对象的方法内,其中最少所指的范围:      1. 该对象本身;     2.被当作方法的参数传递进来的对象 ------------------------------------(以上两点比较好理解,完全字面意思)     3. 此方法所创建或实例化的任何对象       即在方法中,通过构造器生成的一个其他类的对象,在方法中使用这个对象是满足最小知识的原则的;       但是,假如在方法中,通过其他类的非构造器方法返回的类对象,根据该原则是不建议去调用此对象的相关方法的。     4. 对象的任何组件       包括对象所处的类的其他方法,属性 一. 适配器模式   在接触Java这门编程语言的时候,看着视频教程,学到过有关适配器模式的相关内容,可是当时自己完全弄不明白(即使到现在,自己依旧有许多不明白的地方),也许是刚接触的原因,经验不足,缺乏实践的学习使得自己在学的时候,总会把许多理念搞混。   说到适配器设计模式,其实分为两类,一种是对象适配器,另一种是类适配器(但Java中这种方式是无法实现的)。搞清楚适配器模式

浅谈CSRF攻击方式

一个人想着一个人 提交于 2019-12-23 17:55:24
一.CSRF是什么?   CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/XSRF。 二.CSRF可以做什么?   你这可以这么理解CSRF攻击: 攻击者盗用了你的身份,以你的名义发送恶意请求。CSRF能够做的事情包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账......造成的问题包括:个人隐私泄露以及财产安全。 三.CSRF漏洞现状    CSRF这种攻击方式在2000年已经被国外的安全人员提出,但在国内,直到06年才开始被关注,08年,国内外的多个大型社区和交互网站分别 爆出CSRF漏洞,如:NYTimes.com(纽约时报)、Metafilter(一个大型的BLOG网站),YouTube和百度HI......而 现在,互联网上的许多站点仍对此毫无防备,以至于安全业界称CSRF为“沉睡的巨人”。 四.CSRF的原理   下图简单阐述了CSRF攻击的思想:      从上图可以看出,要完成一次CSRF攻击, 受害者必须依次完成两个步骤:   1. 登录受信任网站A,并在本地生成Cookie。   2. 在不登出A的情况下,访问危险网站B。   看到这里,你也许会说:“ 如果我不满足以上两个条件中的一个

asp.net Cookie操作

一个人想着一个人 提交于 2019-12-23 15:51:25
protected void Button2_Click(object sender, EventArgs e) { HttpCookie cookie=new HttpCookie("MyCook");//初使化并设置Cookie的名称 DateTime dt=DateTime.Now; TimeSpan ts = new TimeSpan(0, 0, 1,0,0);//过期时间为1分钟 cookie.Expires = dt.Add(ts);//设置过期时间 cookie.Values.Add("userid", "userid_value"); cookie.Values.Add("userid2","userid2_value2"); Response.AppendCookie(cookie); //输出该Cookie的所有内容 //Response.Write(cookie.Value); //输出为:userid=userid_value&userid2=userid2_value2 } //读取 protected void Button1_Click(object sender, EventArgs e) { // HttpCookie cokie = new HttpCookie("MyCook");//初使化 不同页面要初始化cookie if (Request

Cookie和Session

拥有回忆 提交于 2019-12-23 13:31:30
曾为培训讲师,由于涉及公司版权问题,现文章内容全部清空,以后会重新写一份。 更新、更全的Python相关更新网站,更有数据结构、人工智能、Mysql数据库、爬虫、大数据分析教学等着你: https://www.cnblogs.com/nickchen121/ 来源: https://www.cnblogs.com/nickchen121/p/11517471.html

day57 Django补充内容(中间件其他方法、jQuery操作cookie、csrf详解和form组件简单使用)

坚强是说给别人听的谎言 提交于 2019-12-23 13:10:02
day57 Django补充内容(中间件其他方法、jQuery操作cookie、csrf详解和form组件简单使用) 中间件其他方法 我们已经学到了中间件的三个方法:process_request、process_respond 和 process_view: process_request 在路由分发之前被调用,用来处理请求的数据; process_respond 在gwsi相应之前进行一些处理; process_view 在路由分发之后,进入视图函数之前执行。 此外,中间件还有两个方法,process_exception 和 porcess_remplate_response: process_exception 是当试图出现异常时执行,如果没有出现异常则不执行; process_template_response 只对重写了响应对象中 render 方法的相应有作用。 其基本用法为: from django.shortcuts import redirect,HttpResponse,render from django.utils.deprecation import MiddlewareMixin class MD1(MiddlewareMixin): def process_request(self,request): print('MD1--process

SSO 单点登录总结(PHP)

扶醉桌前 提交于 2019-12-23 12:46:51
本篇文章根据个人理解的知识整理汇总,如有不足之处,请大家多多指正。 单点登录(SSO——Single Sign On)的应用是很普遍的,尤其在大型网站系统中,比如百度,登录百度账号和,再转到百度经验、百度贴吧等是不用重新登录的。本文将从 cookie 和 session 基础详细介绍单点登录的原理,代码实现为 PHP。 Cookie Cookie 是由客户端访问服务器时服务器发送给客户端的特殊信息,且这些信息以文本文件的方式存储在客户端。第一次访问服务器时,服务器会在 HTTP 响应头(Response Header)返回 Cookie 信息。客户端保存 Cookie 信息之后,下次访问服务器时,HTTP请求头(Request Header)会包含 Cookie 信息。 简单的说: 服务器不认识访问它的客户端,为了识别它们,就给每个访问它的客户端一个口令,服务器通过口令识别这些客户端。 注意: 不是访问每个服务器都会返回 Cookie 的,只有服务器中有设置 Cookie ,才会返回给客户端。 Cookie 生成和传递流程 在本地服务器下的 test.php 中设置 Cookie <?php // Cookie 是 HTTP 标头的一部分,因此 setcookie() 函数必须在其它信息被输出到浏览器前调用,这和对 header() 函数的限制类似 setcookie(

会话技术(Cookie,Session)

↘锁芯ラ 提交于 2019-12-23 10:44:47
会话技术(Cookie,Session) 会话:简单理解为一个用户开一个浏览器访问某一个网站,不关闭浏览器,点击多个超链接,访问服务器多个服务资源, 然后关闭浏览器。整个过程就是一次会话(会话是针对一个网站而言) 分类: 客户端会话:Cookie 服务器会话:Session 解决问题:使用会话技术,可以在一次会话中的多次请求共享数据 Cookie:一种在客户端保持会话的跟踪解决方案 原理: 1.客户端第一次请求服务器端,服务器作出响应时,会发送set-cookie头,携带需要共享的数据 2.当客户端接受到这个响应,会将数据存储在客户端 3.当客户端再次请求服务器端时,会通过cookie请求头携带着存储的数据。 4.服务器接受带请求,会获取客户端携带的数据 //创建Cookie cookie=new Cookie(string1,string2); string1:用于指定Cookie的属性名字 string2:用于存储指定的Cookie的属性值 //设置Cookie的有效时间 cookie.setMaxAge(time); time:以秒为单位的整数时间 //获取Cookie //从request对象中获取的是“一堆”的Cookie,所以是用一维数组接受 Cookie cookie[]=request.getCookie(); //可以用foreach去遍历数组 for