cookie

python+requests——高级用法——处理cookie——重点

萝らか妹 提交于 2020-02-24 02:51:21
参考网址: https://www.cnblogs.com/xiaobaibailongma/p/12346091.html import requests url = 'http://www.baidu.com' resp = requests.get(url) print(resp.cookies) print('============================================================') for k,v in resp.cookies.items(): print(k,'=',v) 执行结果: <RequestsCookieJar[<Cookie BDORZ=27315 for .baidu.com/>]> ============================================================ BDORZ = 27315 =================================================================================================================== 使用python的requests开发爬虫程序的时候,经常需要将之前请求返回的cookie值作为下一个请求的cookie进行调用,

Nginx负载均衡会话共享问题

為{幸葍}努か 提交于 2020-02-23 16:03:15
1、什么是会话保持? 简单来说就是用户登录网站后,然后关闭浏览器,当下次在打开网站时,会发现还是处于登录状态,这个就可以理解为是会话保持的功能。 2、为什么要做会话保持? HTTP协议是无状态的,在同一个连接主,两个执行成功的请求之间是没有关系的。这就带来了一个问题,用户没有办法再同一个网站中进行连续的交互,比如再一个电商网站里,用户把某个商品加入到购物车,切换一个界面后再次添加了商品,这两次添加商品的请求之间没有关联,浏览器无法知道用户最终选择了那些商品。 3、会话保持实现的原理? cookie:一般存放再浏览器中的cookies中。主要存放信息(session ID) session:一般存放再服务端。主要存放信息有:(session ID对应的用户名、登录信息等) 4、用户访问动态网站时,cookie和session之间时如何工作的 当用户首次请求服务端网站时,服务端会通过程序生成session_id,然后使用set-cookie的方式将session_id下发给浏览器,浏览器会将session ID存储至本地的cookies中 当用户再次请求服务端网站时,浏览器会再Headers头信息携带该网站的cookie信息,那浏览器携带的cookie信息则时第一次请求网站时服务端给下发的session_ID 用户登录该网站后,服务端会将对应的session_ID存储到(Mysql

PHP 会话管理

匆匆过客 提交于 2020-02-23 11:26:18
目录 1、为什么需要会话控制 2、Cookie和session 3、PHP中的会话控制 4、session操作实质 5、更改session的保存路径 6、session的两个函数 7、session的垃圾回收机制 8、cookie操作 待补充:自定义session驱动 @ 1、为什么需要会话控制 HTTP是一个无状态的协议,当一个用户请求一个页面之后再请求一个页面,PHP将无法判断这两个页面是否来自同一个用户。 会话是可以对用户登录状态进行跟踪的一个机制,从而避免多次验证。 会话通过cookie和session实现对整个会话过程的跟踪。 2、Cookie和session Session与cookie的功能相同 。Session与Cookie的区别在于Session是记录在服务端的,而Cookie是记录在客户端的。 PHP的会话是通过唯一的会话id所驱动的。会话id是一个加密的随机数字,保证每个用户所分配到的id是唯一的。在整个会话的声明周期中都会保存在客户端,可以保存在用户机器的cookie中,也可以写在url中。 Session的两种实现方式 保存在cookie中 通过重写URL,将session id写入URL中。 3、PHP中的会话控制 环境配置 ==启用 php.ini 中的session_auto_stray,但是无法使用对象作为会话变量,因为会话先于对象载入==。

PHP cookie和session的分析

為{幸葍}努か 提交于 2020-02-23 07:19:52
1. PHP的COOKIE cookie 是一种在远程浏览器端储存数据并以此来跟踪和识别用户的机制。 PHP在http协议的头信息里发送cookie, 因此 setcookie() 函数必须在其它信息被输出到浏览器前调用,这和对 header() 函数的限制类似。 1.1 设置cookie: 可以用 setcookie() 或 setrawcookie() 函数来设置 cookie。也可以通过向客户端直接发送http头来设置. 1.1.1 使用setcookie()函数设置cookie: bool setcookie ( string name [, string value [, int expire [, string path [, string domain [, bool secure [, bool httponly]]]]]] ) name: cookie变量名 value: cookie变量的值 expire: 有效期结束的时间, path: 有效目录, domain: 有效域名,顶级域唯一 secure: 如果值为1,则cookie只能在https连接上有效,如果为默认值0,则http和https都可以. 例子: <?php $value = ’something from somewhere’; setcookie(”TestCookie”, $value);

php session和cookie使用说明

别等时光非礼了梦想. 提交于 2020-02-23 07:11:29
php session和cookie使用说明 1. PHP的COOKIE cookie 是一种在远程浏览器端储存数据并以此来跟踪和识别用户的机制。PHP在http协议的头信息里发送cookie, 因此setcookie() 函数必须在其它信息被输出到浏览器前调用,这和对header() 函数的限制类似。 1.1 设置cookie: 可以用setcookie() 或setrawcookie() 函数来设置cookie。也可以通过向客户端直接发送http头来设置。 1.1.1 使用setcookie()函数设置cookie: bool setcookie( stringname [, stringvalue [, int expire [, stringpath [, stringdomain [, bool secure [, bool httponly]]]]]] ) name: cookie变量名value: cookie变量的值expire: 有效期结束的时间, path: 有效目录, domain: 有效域名,顶级域唯一secure: 如果值为1,则cookie只能在https连接上有效,如果为默认值0,则http和https都可以. 例子: <?php $value= 'something from somewhere'; setcookie("TestCookie",

154.Ajax处理csrf防御

独自空忆成欢 提交于 2020-02-23 00:50:45
在普通的form表单中采用post请求提交数据,可以在form表单的method=post的form标签下面,添加一个csrf_token标签{% csrf_token %},或者是直接手动的添加一个input标签,<input type='text' name='csrfmiddlewaretoken value='{{ csrf_token }}'>,都可以在form表单中做好csrf防御的工作。但是如果我们的数据是通过jQuery,Ajax提交的,那我们就不能使用csrf_token标签来处理csrf攻击了。这种情况下,可以在form表单中添加csrfmiddlewaretoken,或者是通过ajax在我们的请求头中设置一个X-CSRFToken变量,我们可以从返回的cookie中提取csrf_token,再设置进去。在我们的项目中创建一个js文件为:myajax_csrf.js,用来定义获取cookie中的csrftoken的函数,示例代码如下: function getcookie(name) { var cookieValue = null; if (document.cookie && document.cookie !== '') { var cookies = document.cookie.split(";"); for (var i = 0; i <

关于shiro

北慕城南 提交于 2020-02-22 17:53:16
shiro作为一个功能强大而且可靠的安全框架拥有很多Api,结合spring可以很方便的实现有关shiro的使用。 这是关于shiro内部的架构图官网上的。下面做个简单的介绍: subject:主体,可以是用户也可以是程序,主体要访问系统,系统需要对主体进行认证、授权。 securityManager:安全管理器,主体进行认证和授权都 是通过securityManager进行。 authenticator:认证器,主体进行认证最终通过authenticator进行的。 authorizer:授权器,主体进行授权最终通过authorizer进行的。 sessionManager:web应用中一般是用web容器对session进行管理,shiro也提供一套session管理的方式。 SessionDao: 通过SessionDao管理session数据,针对个性化的session数据存储需要使用sessionDao。 cache Manager:缓存管理器,主要对session和授权数据进行缓存,比如将授权数据通过cacheManager进行缓存管理,和ehcache整合对缓存数据进行管理。 realm:域,领域,相当于数据源,通过realm存取认证、授权相关数据。 下面时一些shiro提供的方法 可继承重写 Subject Subject即主体,外部应用与subject进行交互

Wargame-Natas练习记录(0~14)

*爱你&永不变心* 提交于 2020-02-22 15:23:02
Wargames是OverTheWire社区提供的一个帮助学习安全知识和实践的一个平台,提供了各式各样的项目模块,可以在其中练级基本的安全技能。 Natas是其中一个最基础的模块,主要用来学习Web安全服务器端的基本安全策略,包含了文件上传、命令行注入、SQL注入等常见的基本安全漏洞,适合Web安全入门学习。 这里主要用来记录个人的练习过程的思路,作为学习的参考。 Wargame: https://overthewire.org/wargames/ Natas: https://overthewire.org/wargames/natas/ Level 0->1: 提示密码就在本页,那就看一下源码呗。 很容易找到注释 <!--The password for natas1 is gtVrDuiDfck831PqWsLEZy5gyDz1clto --> 。 Level 1->2: 提示密码就在本页,但是右键不能使用。好办,F12比右键好用多了。 还是注释里: <!--The password for natas2 is ZluruAthQk7Q2MqmDeTiUij2ZvWy2mBi --> Level 2->3: 这次说页面上没有东西,那就是在其他地方了,查看返回文件时发现多了一个/files/piexl.png;直接访问只有一个像素点,图像没有任何信息,返回上一层看看。

Cookie的原理及使用Cookie获取上次用户的访问时间

♀尐吖头ヾ 提交于 2020-02-22 15:07:37
文章目录 会话技术 Cookie: Cookie实验 需求: 步骤 代码 效果 会话技术 1. 会话:一次会话中包含多次请求和响应。 * 一次会话:浏览器第一次给服务器资源发送请求,会话建立,直到有一方断开为止 2. 功能:在一次会话的范围内的多次请求间,共享数据。 3. 方式: 1. 客户端会话技术:Cookie 2. 服务器端会话技术:Session Cookie: 1. 概念:客户端会话技术,将数据保存到客户端 2. * 使用步骤: 1. 创建Cookie对象,绑定数据 * new Cookie(String name, String value) 2. 发送Cookie对象 * response.addCookie(Cookie cookie) 3. 获取Cookie,拿到数据 * Cookie[] request.getCookies() 3. 实现原理 * 基于响应头set-cookie和请求头cookie实现 4. cookie的细节 1. 一次可不可以发送多个cookie? * 可以 * 可以创建多个Cookie对象,使用response调用多次addCookie方法发送cookie即可。 2. cookie在浏览器中保存多长时间? 1. 默认情况下,当浏览器关闭后,Cookie数据被销毁 2. 持久化存储: * setMaxAge(int seconds) 1.

springboot请求异常org.springframework.http.converter.HttpMessageNotReadableException

天涯浪子 提交于 2020-02-22 05:46:48
SpringBoot Controller接收参数的几种常用注解方式, 1、请求路径中带参数 使用 @PathVariable 获取路径参数。即url/{id}这种形式。 对应的java代码: @GetMapping("/student/{id}") public void demo(@PathVariable(name = "id") String id, @RequestParam(name = "name") String name) { System.out.println("id="+id); System.out.println("name="+name); } 2、@RequestParam 获取查询参数。即url?name=这种形式 用于get/post。springboot默认情况就是它,类似不写注解 对应的java代码: @PostMapping(path = "/demo1") public void demo1(@RequestParam Student stu) { System.out.println(stu.toString()); } 3、@RequestBody获取POST请求参数 对应的java代码: @PostMapping(path = "/demo1") public void demo1(@RequestBody Student stu)