cookie

一文带你看懂cookie,面试前端不用愁

给你一囗甜甜゛ 提交于 2019-12-21 04:18:28
本文由云+社区发表 在前端面试中,有一个必问的问题:请你谈谈cookie和localStorage有什么区别啊? localStorage是H5中的一种浏览器本地存储方式,而实际上,cookie本身并不是用来做服务器存储的。但在 localStorage 出现之前,cookie被滥用当做了存储工具,什么数据都放在cookie中,即使这些数据只在页面中使用、而不需要随请求传送到服务端(当然cookie也做了一些限制:大小受限、每个域名下生成的cookie数量受限)。就像CSS中的float,最初被设计出来的初衷,是用于做文字环绕效果的,就是一个图片、一段文字,给图片加上float:left的样式后,就会产生文字环绕图片的效果。但是后来发现float结合 ,可以实现之前通过 实现的网页布局,因此就被“误用于”网页布局了。 那么通过阅读本文,你可以了解: 1.cookie是什么,cookie的属性有哪些,如何设置cookie,cookie的缺点,和session的区别 2.不再混淆cookie和webStorage,简单介绍浏览器的本地存储的两种方式:sessionStorage和localStorage 1.cookie 1.1 cookie是什么 cookie是当你浏览某个网站的时候,由web服务器存储在你的机器硬盘上的一个小的文本文件。它其中记录了你的用户名、密码、浏览的网页

cookie 详解

扶醉桌前 提交于 2019-12-21 04:17:28
cookie概览 cookie是Web浏览器存储的少量命名数据,它与某个特定的网页或网站关联在一起。cookie是用来给Web浏览器提供内存,以便脚本和服务端程序可以在一个页面使用另一个页面的输入数据,或者在用户离开页面并返回时恢复用户的优先级及其他变量。 cookie操作及属性 Document对象含有一个cookie属性,通过javascript可以对cookie进行操作。 cookie是一个字符串属性,可以用它对当期网页的cookie进行读操作、创建操作、修改操作和删除操作。 除了名字和值外,每个cookie都有四个可选的属性,分别是: expires、 path、 domain、 secure expires : 指定了cookie的生存期。默认情况下,cookie是暂时存在的,它们存储的值只在浏览器会话期间存在。当用户退出浏览器后,这些值也就丢失了。如果想让一个cookie存在的事件超过一个浏览器会话期,必须告诉浏览器希望它保存cookie多长时间。做到这一点就是把expires属性设置为未来的一个过期日期。尽管expires属性仍然有效,但是它已经被max-age属性所取代,后者用秒来设置cookie的生命期。设置这两个属性的任何一个,都会使浏览器把cookie保存到一个本地文件中,以便用户下次访问这个网页时能够再将它读取出来。一旦超过了终止日期

AJAX安全

人走茶凉 提交于 2019-12-21 03:11:33
AJAX 三问 ajax请求真的不安全吗,为什么后端总是让使用普通HTTP请求? ajax请求哪里不安全? 怎样让ajax请求更安全? 目录 常见的web前端安全问题 CSRF简介 CSRF和ajax的关系 XSS简介 XSS和ajax关系 SQL注入 SQL和ajax关系 ajax和HTTP区别 cors 和ajax安全性之间的关系 首先解决问题:ajax真的不安全吗?哪里不安全?如何更安全? 在Web应用中, 客户端输入不可信 是一个基本原则。 如果某个Web应用具备良好的安全性,那么再怎么用“不安全的AJAX”也削弱不了它的安全性,反之如果应用本身存在漏洞,不管用何种技术请求,它都是不安全的。 web常见安全问题: 1.XSS(跨站脚本攻击) -> 伪造会话(基于XSS实现CSRF) ->劫持cookie ->恶意代码执行 2.CSRF(跨站请求伪造) ->伪造用户身份操作 3.SQL注入 CSRF简介 CSRF 冒用用户身份,进行恶意操作 采用cookie来进行用户校验 登录受信任网站A,并在本地生成Cookie 在不登出A的情况下,访问危险网站B 如下图: 一般在(4)处恶意网站(B)的攻击手段如下(必须是指向A的地址,否则无法带上cookie): // 1.譬如在网站内的图片资源中潜入恶意的转账操作 <img src=http://www.bank.example

from beginning to end_mouth04_day03

蓝咒 提交于 2019-12-21 00:06:47
day03 为什么会出现跨域问题:1、浏览器限制,2、跨域(域名,端口不一样都是跨域),3、XHR(XMLHttpRequest请求)。同时满足三个条件才有可能产生跨域问题。 cookies和session的异同 cookie数据存放在客户的浏览器上,session数据放在服务器上。 cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗,考虑到安全应当使用session。 session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面,应当使用COOKIE。 单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。cookie 和session 的联系:session是通过cookie来工作的,可以考虑将登陆信息等重要信息存放为session,其他信息如果需要保留,可以放在cookie中 CSRF的 攻击原理和防范措施 攻击原理: 用户C访问正常网站A时进行登录,浏览器保存A的cookie 用户C再访问攻击网站B,网站B上有某个隐藏的链接或者图片标签会自动请求网站A的URL地址,例如表单提交,传指定的参数 而攻击网站B在访问网站A的时候,浏览器会自动带上网站A的cookie 所以网站A在接收到请求之后可判断当前用户是登录状态,所以根据用户的权限做具体的操作逻辑

Cookie和Session的的区别

◇◆丶佛笑我妖孽 提交于 2019-12-20 21:25:39
前些天学习了Cookie和Session,我以对比的方式来简单说下两者的区别: 什么是Cookie? Cookie 是一小段文本信息,伴随着用户请求和页面在 Web 服务器和浏览器之间传递.Cookie 包含每次用户访问站点时 Web 应用程序都可以读取的信息. 什么是Session? Session 一般译作会话,牛津词典对其的解释是 进行某活动连续的一段时间。 从不同的层面看待session,它有着类似但不全然相同的含义.比如,在web应用的用户看来,他打开浏览器访问一个电子商务网站,登录、并完成购物直到关闭浏览器,这是一个会话。而在web应用的开发者开来,用户登录时我需要创建一个数据结构以存储用户的登录信息,这个结构也叫做session。因此在谈论session的时候要注意上下文环境.而本文谈论的是一种基于HTTP协议的用以增强web应用能力的机制或者说一种方案,它不是单指某种特定的动态页面技术,而这种能力就是保持状态,也可以称作保持会话. Cookie概述 cookie的内容主要包括:名字,值,过期时间,路径和域。路径与域一起构成cookie的作用范围。若不设置过期时间,则表示这 个cookie的生命期为浏览器会话期间,关闭浏览器窗口,cookie就消失。这种生命期为浏览器会话期的cookie被称为会话cookie. 会话cookie一般不存储在硬盘上而是保存在内存里

JWT基础知识

为君一笑 提交于 2019-12-20 20:44:37
1> JWT定义 JSON Web Token (JWT) 是一种开放的行业标准( RFC 7519 ),用于安全传送认证信息. 是目前流行的跨域认证的解决方案。 2> JWT数据结构 由三部分组成: Header(头部) . Payload(负载) . Signature(签名) 2.1> Header部分: 由Token类型 ("JWT") 和 算法名称 ("HS256"等)组成 ,再用Base 64对JSON编码。 2.2>Payload部分: 由声明部分组成。声明有三种类型:Registered,Public,Private Registered Claims: 预定义的声明,建议不是强制。   例如:   iss ( Issuer ) 签发者 exp ( Expiration Time) 过期时间 sub ( Subject ) 所面向的用户 aud ( Audience ) 接收者 Public Claims: 可自定义任何信息,一般添加用户相关信息或业务需要信息 Private Claims: 提供者和消费者所共同定义的声明 注意:不要在JWT的payload或header中放置敏感信息 2.3> Signature 签名是用于验证消息在传递过程中有没有被更改,并且,对于使用私钥签名的token,它还可以验证JWT的发送方是否为它所称的发送方。

php web基础教程之超级变量

流过昼夜 提交于 2019-12-20 19:42:37
php的超级变量都有哪些? $GLOBALS $_SERVER $_REQUEST $_POST $_GET $_FILES $_ENV $_COOKIE $_SESSION (注意要区分大小写,php是一个区分大小写的语言,这个题上网一收全是,我来教大家如何更方便记忆) 这些超级变量的作用: 先分个组: $_POST $_GET $_REQUEST $_FILES 一组 这一组主要是接受和存储前台发到后台的值,大家可以参照我想一篇文章。 $_FILES主要针对上传文件的,大家可以再往前翻阅上传图片的博文。 $_COOKIE $_SESSION一组。 php代码: echo 'SESSION' ; echo '<br>' ; print_r ( $_SESSION ) ; echo '<br>' ; echo 'cookie' ; echo '<br>' ; print_r ( $_COOKIE ) ; 结果: 先存一个session session_start ( ) ; $_SESSION [ 'user' ] = 'caption' ; echo 'SESSION' ; echo '<br>' ; print_r ( $_SESSION ) ; echo '<br>' ; echo 'cookie' ; echo '<br>' ; print_r ( $_COOKIE ) ;

晨测3 理论语法

懵懂的女人 提交于 2019-12-20 19:39:53
1、什么是cookie,什么是session? cookie是指网站为了鉴别用户身份,进行会话跟踪而存储在客户端本地的数据。 本来的含义是指有始有终的一系列动作,而在web中,session对象用来服务器存储特定用户会话所需要的属性及信息。 2、cookie和session的原理是什么?他们是如何联系在一起的? cookie的原理: 由服务器产生,当浏览器第一次发送请求到服务器,服务器返回数据,同时生成一个cookie返回客户端,客户端将这个cookie保存下来。 当浏览器再次访问,浏览器就会自动带上cookie信息,这样服务器就能通过cookie判断是哪个用户在操作。 session的工作原理。 cookie的缺陷: 1,不安全----保存在客户端 2,cookie本身最大支持4096(4kb)—存储大小受限。 联系在一起的原因:正是因为cookie的缺陷,所以产生了另外一种保持状态的方法–session。 服务器存储session,基于http协议的无状态特征, 服务器就不知道这个访问是谁。为了解决这个问题,cookie就起到了桥的作用。 cookie在使用的过程中,将一个叫做session的字段放到cookie中,将来服务器可以通过这个id字段来查找到地上那个用户的session。 session的生命周期,当用户第一次登陆时创建(生命开始),到session有限期结束

Python urllib简单使用

旧时模样 提交于 2019-12-20 18:08:05
Python的urllib和urllib2模块都做与请求URL相关的操作。 它们最显著的差异为: urllib2可以接受一个Request对象,并以此可以来设置一个URL的headers,但是urllib只接收一个URL。 urllib模块可以提供进行urlencode的方法,该方法用于GET查询字符串的生成,urllib2的不具有这样的功能. python 2.7.x提供了urllib与urllib2,鉴于上述异同两个库通常搭配使用。 urlopen urllib2.urlopen(url, *data, *timeout) urlopen方法是urllib2模块最常用的方法,用于访问发送某一请求。 url参数可以是一个字符串url或者是一个Request对象。 可选参数timeout用于设置超时时间,以秒为单位。 如果没有指定,将使用设置的全局默认timeout值。 urlopen使用默认opener进行访问, 为阻塞式IO. 如果请求成功,函数将返回响应。 在data为None时默认用GET方法: import urllib2 response = urllib2.urlopen('http://python.org/') html = response.read() print(html) 使用POST发送参数前需要先将参数编码: import urllib import

自动登陆抽屉并点赞(2)

空扰寡人 提交于 2019-12-20 14:39:10
我们先登陆抽屉账号 然后打开控制台,仔细观察变化,通常只需要观察最底部的变化 再往下翻,并没有看到from-data传值,我们这时点赞,并查看Response 根据思路我写了一段代码 import requests # 注意:防爬虫策略 response = requests.post( url='https://dig.chouti.com/login', data={ 'phone': '8615921302790', 'password': 'a12!', 'oneMonth': '1' }, headers={ 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36' } ) # print(response.text) # 点赞 r1 = requests.post( url='https://dig.chouti.com/link/vote?linksId=20386976', headers={ 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML,