cookie

koa-session学习笔记

早过忘川 提交于 2020-01-27 04:42:55
koa-session 是koa的 session 管理中间件,最近在写登录注册模块的时候学习了一下这部分的代码,感觉还比较容易看明白,让自己对于 session 的理解也更加深入了,这里总结一下。 session基础知识 这部分算是基础知识,熟悉的朋友可以跳过。 我们都知道 http协议本身是无状态的 ,因此协议本身是不支持“登录状态”这样的概念的,必须由项目自己来实现。我们常常说到 session 这个概念,但是可能有人并不是非常清楚我们讨论的 session 具体指代什么。我觉得这个概念比较容易混淆,不同的上下文会有不同的含义: session 首先是一个抽象的概念, 指代多个有关联的http请求所构成的一个会话 。 session 常常用来指代为了实现一个会话, 需要在客户端和服务端之间传输的信息 。这些信息可以是会话所需的所有内容( 包括用户身份、相关数据等 ), 也可以只是一个id , 让服务端可能从后台检索到相关数据 ,这也是实际系统中最常用的方式。 当我们讨论** session 的实现方式 的时候,都是 寻找一种方式从而使得多次请求之间能够共享一些信息**。不论选择哪种方式,都是 需要由服务自己来实现的, http 协议并不提供原生的支持 。 实现 session 的一种方式就是 在每个请求的参数或者数据中带上相关信息 ,这种方式的好处是 不受 cookie

ASP.NET Identity详解

谁说胖子不能爱 提交于 2020-01-27 04:34:18
Asp.Net Identiy是ASP.NET身份验证机制。 如何构建安全的Web应用? 我们先来思考一个问题: 如何构建安全的WEB应用? 一直以来,这都是比较热门的话题。不幸的是,目前还没有一种万能方法,来保证您的WEB应用是绝对安全的。不管是系统本身的漏洞,还是其他外来的攻击,我们每天都饱受着安全问题的煎熬。 其实,我们也无需沮丧和纠结。既然,我们不能阻止攻击,但是可以提前预防,尽量将损失减到最小,不是吗? 目前,有许多适用于ASP.NET应用的安全原则,比如深度防御、不信任任何输入数据、关闭不必要的功能等等。但是,最基本的、最重要的原则还是身份验证(Authentication)和授权(Authorization)。 验证和授权 初次看到这两个概念,也许大家很容易犯迷糊。因为,Authentication和Authorization确实长得很像。其实,它们仅仅外表很像而已,内在却大不相同。 验证(Authentication) 验证就是鉴定应用程序访问者身份的过程。验证回答了以下问题:当前访问的用户是谁?这个用户是否有效?在日常生活中,身份验证并不罕见。比如,通过检查对方的证件,我们一般可以确信对方的身份。 授权(Authorization) 授权是决定验证通过的用户应该拥有何种级别的访问安全资源的权限。资源可以是IIS上的页面文件、媒体文件(.jpeg)、压缩文件(

JS获取cookie

纵然是瞬间 提交于 2020-01-27 04:01:27
function getCookie ( name ) { if ( document . cookie . length > 0 ) { const end = ` ${ name } =` const cal = document . cookie . split ( ';' ) for ( let i = 0 ; i < cal . length ; i += 1 ) { const str = cal [ i ] . trim ( ) if ( str . substring ( 0 , end . length ) === end ) return str . substring ( end . length , str . length ) } } return '' ; } 来源: CSDN 作者: weixin_44953227 链接: https://blog.csdn.net/weixin_44953227/article/details/103926299

JavaScript自学笔记一

六月ゝ 毕业季﹏ 提交于 2020-01-26 12:33:44
1.onload和onunload是打开与关闭页面事件,可以用来出cookie。 1 <!DOCTYPE html> 2 <html> 3 <body onload="checkCookies()"> //打开body页面的时候触发函数 4 5 <script> 6 function checkCookies() 7 { 8 if (navigator.cookieEnabled==true) //检查cookie并弹窗提示 9 { 10 alert("已启用 cookie") 11 } 12 else 13 { 14 alert("未启用 cookie") 15 } 16 } 17 </script> 18 19 <p>提示框会告诉你,浏览器是否已启用 cookie。</p> 20 </body> 21 </html> 2.onchange是在改变时触发。 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 5 <script> 6 function myFunction() 7 { 8 var x=document.getElementByIdx_x("fname"); 9 x.value=x.value

node+axios+cookie填坑

扶醉桌前 提交于 2020-01-26 10:48:58
昨天用node写后端接口,前端axios请求,遇到好多坑,总结一下: 1.axios传参异常 this.axios.post(this.$route.meta.api.login, { account: this.form.account, password: this.form.password }) 一开始使用这届对象传参的方式,发现后台接受到的参数为空对象,上网查了一下,说是需要添加 axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8' 于是在全局中添加了上面代码,发现还是没用。最终通过如下方式解决: let formData = new URLSearchParams() formData.append('account', this.form.account) formData.append('password', this.form.password) this.axios.post(this.$route.meta.api.login, formData) 2.cookie无法存储中文 我用cookie保存用户信息,代码如下: req.cookies.set('userInfo', JSON.stringify({ username

跨域资源共享 CORS 详解

馋奶兔 提交于 2020-01-26 10:16:11
一、简介 CORS需要浏览器和服务器同时支持。目前,所有浏览器都支持该功能,IE浏览器不能低于IE10。 整个CORS通信过程,都是浏览器自动完成,不需要用户参与。对于开发者来说,CORS通信与同源的AJAX通信没有差别,代码完全一样。浏览器一旦发现AJAX请求跨源,就会自动添加一些附加的头信息,有时还会多出一次附加的请求,但用户不会有感觉。 因此,实现CORS通信的关键是服务器。只要服务器实现了CORS接口,就可以跨源通信。 二、两种请求 浏览器将CORS请求分成两类:简单请求(simple request)和非简单请求(not-so-simple request)。 只要同时满足以下两大条件,就属于简单请求。 (1) 请求方法是以下三种方法之一: HEAD GET POST (2)HTTP的头信息不超出以下几种字段: Accept Accept-Language Content-Language Last-Event-ID Content-Type:只限于三个值application/x-www-form-urlencoded、multipart/form-data、text/plain 凡是不同时满足上面两个条件,就属于非简单请求。 浏览器对这两种请求的处理,是不一样的。 三、简单请求 3.1 基本流程 对于简单请求,浏览器直接发出CORS请求。具体来说,就是在头信息之中

底层工具类,storage封装

こ雲淡風輕ζ 提交于 2020-01-26 02:13:43
storage封装 1.先简单讲讲storage的基础 cookie遗留问题 : 1:大小的限制:4KB 不能接受大数据 2:带宽的限制:cookie必须服务器和客户端数据会进行同步, 过时,会去 通知服务器清楚cookie数据 3:如果不加密的传输非常不安全 4:操作是非常复杂,document.cookie进行操作 优点:会根据时间自动清楚数据.时效作用 storage: 1:存储的空间 5MB < storage < 10MB 2:没带宽限制 3:操作简单 4:独立的存储空间但是storage不能替代cookie。 storage的分类 会话级别:sessionStorage 本地存储:localStorage 常用的方法: 设值:setItem(key,value); 取值:getItem(key,value) 删值:removeItem(key); 清除:clear(); 个数:length取键:key(index),获取制定位置的键 index=0 方法封装 export const { localStorage , sessionStorage } = window export class LocalStorage { set ( key , value , time ) { try { const temp = { value , } ; if ( time &&

HttpSession详解

試著忘記壹切 提交于 2020-01-26 00:47:58
session的机制    http 是无状态的协议,客户每次读取 web 页面时,服务器都打开新的会话,而且服务器也不会自动维护客户的上下文信息,那么要怎么才能实现会话跟踪呢? session 就是一种保存上下文信息的机制,它是针对每一个用户的,变量的值保存在服务器端,通过 SessionID 来区分不同的客户 ,session 是以 cookie 或 URL 重写为基础的,默认使用 cookie 来实现,系统会创造一个名为 JSESSIONID 的输出返回给客户端Cookie保存。 保存session id的几种方式    A.保存session id的方式可以采用cookie,这样在交互过程中浏览器可以自动的按照规则把这个标识发送给服务器。   B.由于cookie可以被人为的禁止,必须有其它的机制以便在cookie被禁止时仍然能够把session id传递回服务器,经常采用的一种技术叫做 URL重写,就是把session id附加在URL路径的后面,附加的方式也有两种,一种是作为URL路径的附加信息,另一种是作为查询字符串附加在URL后面。网络在整个交互过程中始终保持状态,就必须在每个客户端可能请求的路径后面都包含这个session id。   C.另一种技术叫做 表单隐藏字段。就是服务器会自动修改表单,添加一个隐藏字段,以便在表单提交时能够把session

Python 记录 模拟登录 的 cookie

大兔子大兔子 提交于 2020-01-25 14:41:32
在 进行python进行爬虫的时候,都绕不开登录,很多需求只能用户登录之后才能进行后续的接口调用。 那么服务器如何知道 你此次的请求 是否登录过 还是没有,一般会通过cookie。 因此记录 cookie的作用就非常重要。 #!/usr/bin/env python import os import requests headers = { 'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36', 'Accept' : 'application/json, text/plain, */*', 'Accept-Encoding': 'gzip, deflate', 'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8', 'Content-Type': 'application/json;charset=UTF-8'} import json #创建一个 Session for context-management. s1 = requests.session() nifi2_host='xxxxxxx' # 此时提交一个用户登录请求,这个请求通过后就会

Session和Cookie实现购物车

限于喜欢 提交于 2020-01-25 13:39:48
来自森大科技官方博客 http://www.cnsendblog.com/index.php/?p=342 GPS平台、网站建设、软件开发、系统运维,找森大网络科技! http://cnsendnet.taobao.com 使用Session和Cookie实现购物车的比较   购物车相当于现实中超市的购物车,不同的是一个是实体车,一个是虚拟车而已。用户可以在购物网站的不同页面之间跳转,以选购自己喜爱的商品,点击购买时,该商品就自动保存到你的购物车中,重复选购后,最后将选中的所有商品放在购物车中统一到付款台结账,这也是尽量让客户体验到现实生活中购物的感觉。服务器通过追踪每个用户的行动,以保证在结账时每件商品都物有其主。 购物车的功能包括以下几项: 把商品添加到购物车,即订购 删除购物车中已定购的商品 修改购物车中某一本图书的订购数量 清空购物车 显示购物车中商品清单及数量、价格 实现购物车的关键在于服务器识别每一个用户并维持与他们的联系。但是HTTP协议是一种“无状态(Stateless)”的协议,因而服务器不能记住是谁在购买商品,当把商品加入购物车时,服务器也不知道购物车里原先有些什么,使得用户在不同页面间跳转时购物车无法“随身携带”,这都给购物车的实现造成了一定的困难。 目前购物车的实现主要是通过cookie、session或结合数据库的方式。下面分析一下它们的机制及作用。