cookie

node.js(八 --- express)

孤者浪人 提交于 2019-12-18 09:13:49
EXPRESS   重要的模块     body-parser: node.js中间件,用于处理JSON,Text和URL编码的数据;     cookie-parser:这就是一个解析Cookie的工具。通过req.cookies可以取到传过来的cookie,并把它们转成对象;     multer: node.js中间件,用于处理enctype='multipart/form-data'(设置表单的MME编码)的表单数据;      请求和响应     即request和response对象来处理请求和响应的数据;     requset对象:       表示HTTP请求,包含了请求查询字符串,参数,内容,HTTP头部等属性。       属性:         1、req.app:当callback为外部文件时,用req.app访问express的实例;         2、req.baseUrl: 获取路由当前安装的URL路径;         3、req.body/req.cookies:获取请求体/Cookie;         4、req.fresh/req.state:判断请求是否还[新鲜];         5、req.hostname/req.ip:获取主机名和IP地址;         6、req.originalUrl: 获取原始请求Url;       

jmeter手动添加cookie及线程间cookie共享的2种方法

匆匆过客 提交于 2019-12-18 04:45:30
手动添加cookie可以参照: https://blog.csdn.net/qq_22219911/article/details/80408351 只要有登录后的cookie内容(可能是session、可能是token),手动设置到cookie管理器中后,调用其他的非登录接口将不需要在登录了(除非当前的cookie失效——由session或token的失效时间确定,貌似session的默认失效时间是30分钟) 那么,一个线程组用于登录并正则匹配到对应的cookie值,并保存到jmeter全局属性中(${__setProperty(sessionTemp,${sessionId},)}),再线程组同级别添加http cookie manager,并将jmeter全局属性中的cookie内容手动设置好(${__property(sessiontemp,,)}),那么接下来其他同级的线程组可以不用再次登录就可直接调用其他接口。 注意:也可以将获取的cookie值手动添加到另外线程组的Http Request Defaults中,达到相同的效果(其他同级的线程组可以不用再次登录就可直接调用其他接口)。 线程间cookie共享方法一: (1)如我的登录信息如下: (2)我的jmeter脚本如下: (3)其中jmeter调用登录接口的响应结果如下: (4)其中正则匹配的cookie内容如下:

利用登录授权窃取你的令牌

别来无恙 提交于 2019-12-18 02:01:38
在2018年年中,Linode的Hackerone漏洞悬赏项目吸引了我,因为这个项目很活跃,管理得非常好,但很多漏洞细节并没有公开。我希望能找到漏洞,并对外公开某个漏洞细节。 Linode是一个VPS提供商,而用户购买的VPS将解析为 <id>.members.linode.com ,而这也给了我灵感,因为这基本上意味着我们能完全控制 linode.com 的子域,执行任何服务端脚本语言。 了解Linode的身份认证 Linode主要对外提供了4个Web应用: https://manager.linode.com 经典Linode网站 https://linode.com/community 社区门户 https://login.linode.com OAuth服务器 https://cloud.linode.com 新型Linode网站 当我们完全控制子域时,可以读取任何和 .linode.com (cookie被设置为通配符域)有关的cookie,我开始研究 [https://manager.linode.com](https://manager.linode.com) 中的session/CSRF的cookie,但所有cookie都正确地设置为only manager.linode.com ,然后我转移到另一个应用 [https://linode.com/community]

Session与cookie

ぃ、小莉子 提交于 2019-12-18 01:07:47
session的实现与工作原理 浏览器和服务器采用http无状态的通讯,为了保持客户端的状态,使用session来达到这个目的。然而服务端是怎么样标示不同的客户端或用户呢? 这里我们可以使用生活中的一个例子,假如你参加一个晚会,认识了很多人,你会采取什么方式来区分不同的人呢!你可能根据脸型,也有可能根据用户的名字, 或者人的身份证,即采用一个独一无二的标示。在session机制中,也采用了这样的一个唯一的session_id来标示不同的用户,不同的是:浏览器每次请求都会带上 由服务器为它生成的session_id. 简单介绍一下流程:当客户端访问服务器时,服务器根据需求设置session,将会话信息保存在服务器上,同时将标示session的session_id传递给客户端浏览器, 浏览器将这个session_id保存在内存中(还有其他的存储方式,例如写在url中),我们称之为无过期时间的cookie。浏览器关闭后,这个cookie就清掉了,它不会存在用户的cookie临时文件。 以后浏览器每次请求都会额外加上这个参数值,再服务器根据这个session_id,就能取得客户端的数据状态。 如果客户端浏览器意外关闭,服务器保存的session数据不是立即释放,此时数据还会存在,只要我们知道那个session_id,就可以继续通过请求获得此session的信息

haproxy配置详解

对着背影说爱祢 提交于 2019-12-17 23:31:50
一、HAProxy简介 1.HAProxy 是一款提供高可用性、负载均衡以及基于TCP(第四层)和HTTP(第七层)应用的代理软件,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。 2.HAProxy 实现了一种事件驱动、单一进程模型,此模型支持非常大的并发连接数。 3.HAProxy 支持全透明代理(已具备硬件防火墙的典型特点): 可以用客户端IP地址或者任何其他地址来连接后端服务器. 这个特性仅在Linux 2.4/2.6内核打了cttproxy补丁后才可以使用. 这个特性也使得为某特殊服务器处理部分流量同时又不修改服务器的地址成为可能。 二、HAProxy工作原理 HAProxy由前端(frontend)和后端(backend),前端和后端都可以有多个。也可以只有一个listen块来同时实现前端和后端。这里主要讲一下frontend和backend工作模式。 前端(frontend)区域可以根据HTTP请求的header信息来定义一些规则,然后将符合某规则的请求转发到相应后端(backend)进行处理。 三、HAProxy性能 HAProxy借助于OS上几种常见的技术来实现性能的最大化,所有的这些细微之处的优化实现了在中等规模负载之上依然有着相当低的CPU负载,甚至于在非常高的负载场景中,5%的用户空间占用率和95%的系统空间占用率也是非常普遍的现象

安全测试之-CORS

。_饼干妹妹 提交于 2019-12-17 18:01:04
CORS 1. cors(cross origin resource share)跨域资源共享 拍摄与南京   浏览器的同源策略限制了脚本的跨域请求,但互联网的发展是越来越开放的,随着发展,跨域请求变得越来越多,CORS应运而生。CORS是一个W3C标准,它允许浏览器向跨源服务器发出xmlhttprequest请求,从而克服了AJAX(创建交互式网页应用程序的网页开发技术)只能同源使用的限制。   在CORS发布之前浏览器使用的是同源策略。 同源策略(same origin policy) 简介: 同源策略(Same origin policy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。   浏览器的同源策略限制了来自不同源的“document”或脚本,对当前“document”的读取或设置某些属性。 同源针对以下三个部分 a) host(域名或ip、子域名) b) 协议 c) 端口 浏览器访问服务器时,上述任一部分不满足同源则不能正常访问服务器(实际浏览器拦截的是发出请求后服务器返回的数据)。即请求发送了,服务器响应了,但是无法被浏览器接收。 举个例子: http://123456.com pass http://123456.com/path

爬虫——Selenium与PhantomJS

偶尔善良 提交于 2019-12-17 17:02:52
Selenium Selenium是一个Web的自动化测试工具,最初是为网站自动化测试而开发的,类型像我们玩游戏用的按键精灵,可以按指定的命令自动操作,不同的是Selenium可以直接运行在浏览器上,它支持所有主流的浏览器(包括PhantomJS这些无界面的浏览器)。 Selenium可以根据我们的指令,让浏览器自动加载页面,获取需要的数据,甚至页面截屏,或者判断网站上某些动作是否发生。 Selenium自己不带浏览器,不支持浏览器的功能,它需要与第三方浏览器结合在一起才能使用。但是我们大多数时候需要让它内嵌在代码中运行,所以我们可以用一个叫PhantomJS的工具代替真实的浏览器。 可以从 PyPI 网站下载 Selenium库 https://pypi.python.org/simple/selenium ,也可以用 第三方管理器 pip用命令安装: pip install selenium Selenium 官方参考文档: http://selenium-python.readthedocs.io/index.html PhantomJS PhantomJS是一个基于Webkit的“无界面”(headless)浏览器,它会把网站加载到内存并执行页面上的JavaScript,因为不会展示图形界面,所以运行起来比完整的浏览器要高效。

爬虫(五):代理IP、Cookie

↘锁芯ラ 提交于 2019-12-17 11:13:59
1. 代理IP 代理IP这个功能呢,在urllib和requests中都存在,但是这个在大的爬虫项目中是非常重要的,所以我拿出来单独讲解。 对于某些网站,如果同一个 IP 短时间内发送大量请求,则可能会将该 IP 判定为爬虫,进而对该 IP 进行封禁 所以我们有必要使用随机的 IP 地址来绕开这一层检查。我们可以去找那些提供免费IP地址的网站,但是这些网站的免费代理IP基本上是不稳定的,随时可能会更新,如果是自己小规模的爬取,可以使用免费代理IP。如果是那种大型的,就需要付费代理IP了。 1.1 urllib使用IP代理 import urllib.request import random ip_list = [ {'http':'61.135.217.7:80'}, {'http':'182.88.161.204:8123'} ] proxy_handler = urllib.request.ProxyHandler(random.choice(ip_list)) opener = urllib.request.build_opener(proxy_handler) response = opener.open('https://www.httpbin.org/ip') print(response.read().decode('utf-8')) 结果: 1.2

view 视图函数

我的梦境 提交于 2019-12-17 11:06:51
一 Django的视图函数view      一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应。   响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片。   无论视图本身包含什么逻辑,都要返回响应。 代码写在哪里也无所谓,只要它在你当前项目目录下面。 除此之外没有更多的要求了——可以说“没有什么神奇的地方”。 为了将代码放在某处,大家约定成俗将视图放置在项目(project)或应用程序(app)目录中的名为 views.py 的文件中。   一个简单的视图   下面是一个以HTML文档的形式返回当前日期和时间的视图: from django.http import HttpResponse import datetime def current_datetime(request): now = datetime.datetime.now() html = "<html><body>It is now %s.</body></html>" % now return HttpResponse(html)   让我们来逐行解释下上面的代码: 首先,我们从 django.http 模块导入了 HttpResponse 类,以及Python的 datetime 库。 接着,我们定义了

Docker搭建RabbitMQ集群

a 夏天 提交于 2019-12-17 07:16:21
Docker搭建RabbitMQ集群 Docker安装 见 官网 RabbitMQ镜像下载及配置 见 此博文 集群搭建 首先,我们需要启动运行RabbitMQ docker run -d --hostname my-rabbit -p 5671:5671 -p 5672:5672 -p 15671:15671 -p 15672:15672 -p 25672:25672 -p 4369:4369 -v $PWD/rabbitmq-data:/var/rabbitmq/lib --name my_rabbitmq rabbitmq:latest 参数说明: ​ -d:后台进程运行 ​ --hostname:主机名称 ​ -p:端口映射 ​ 15672:http访问端口 ​ 5672:AMQP访问端口 ​ -v:文件映射 ​ --name:容器名称 启动多个RabbitMQ docker run -d --hostname my-rabbit -p 5671:5671 -p 5672:5672 -p 15671:15671 -p 15672:15672 -p 25672:25672 -p 4369:4369 -v $PWD/rabbitmq-data:/var/rabbitmq/lib --name my_rabbitmq1 rabbitmq:latest docker run -d -