payload

什么是token及怎样生成token

烈酒焚心 提交于 2019-12-02 03:28:22
什么是token?   token是 服务端 生成的一串字符串,以作客户端进行请求的令牌, 当第一次登陆后,服务器生成一个token便将此token返回给客户端,以后客户端只要带上这个token前来请求数据即可 ,无需再次带上用户名和密码   基于token的身份验证   使用基于token的身份验证方法,在服务端不需要存储用户的登录记录.流程是这样的: 客户端使用用户名跟密码去请求登录,服务度段收到请求,去验证用户名和密码,验证成功后,服务端会 签发 一个token,再把这个token发送给客户端,客户顿收到token以后可以把它存储起来,比如放在cookie里面或者local storage里面,客户端每次向服务端请求资源的时候需要带上服务端签发的token,服务端收到请求,然后去验证客户端请求里面带着的token,如果验证成功,以某种方式比如随机生成32位的字符串作为token,存储在服务器中,并返回token到APP,以后APP请求时,凡是需要验证的地方都要带上该token,然后服务端验证token,成功返回所需要的结果,失败返回错误信息, 重新登录,服务器上的token设置一个有效期,每次APP请求时都要验证token和有效期. token的优势:   1.无状态.可扩展   在客户端存储的token是无状态的,并且能被扩展的.基于这种无状态和不存储session信息

自定义类签发校验token-实现多方式登录-自定义反爬类-admin后台表管理字段自定义-群查接口-搜索-排序-分页

强颜欢笑 提交于 2019-12-02 03:11:17
目录 复习 今日 签发token 校验token 案例:实现多方式登陆签发token 案例:自定义认证反爬规则的认证类 admin使用自定义User表:新增用户密码密文 群查接口各种筛选组件数据准备 drf搜索过滤组件 drf排序过滤组件 drf基础分页组件 复习 """ 频率组件:限制接口的访问频率 源码分析:初始化方法、判断是否有权限方法、计数等待时间方法 自定义频率组件: class MyThrottle(SimpleRateThrottle): scope = 'sms' def get_cache_key(self, request, view): # 从request的 query_params、data、META 及 view 中 获取限制的条件 return '与认证信息有关的动态字符串' settings文件中要有scope对应的rate配置 {'sms': '3/min'} jwt认证: 1)session存储token,需要数据库参与,耗服务器资源、低效 2)缓存存token,需要缓存参与,高效,不易集群 3)客户端存token,服务器存签发与交易token的算法,高效,易集群 drf-jwt使用: 安装:djangorestframework-jwt 视图类签发token - username,password => token 认证类校验token -

python-Request模块使用

怎甘沉沦 提交于 2019-12-01 22:36:21
request 允许发送HTTP/1.1的请求,并为我们封装了更多的方法让我们不需要手动为 URL 添加查询字串,也不需要对 POST 数据进行表单编码。Keep-alive 和 HTTP 连接池的功能是 100% 自动化的,一切动力都来自于根植在 Requests 内部的 urllib3 。 Requests 完全满足今日 web 的需求。 Keep-Alive & 连接池 国际化域名和 URL 带持久 Cookie 的会话 浏览器式的 SSL 认证 自动内容解码 基本/摘要式的身份认证 优雅的 key/value Cookie 自动解压 Unicode 响应体 HTTP(S) 代理支持 文件分块上传 流下载 连接超时 分块请求 支持 .netrc Requests 支持 Python 2.6—2.7以及3.3—3.7,而且能在 PyPy 下完美运行。 安装、简介完后进行快速上手: 使用request发送http请求很简单, 一、导入模块 import request 二、使用request发送get请求 r = request.get( ‘https://www.baidu.com’ ) 这个 r 就是我们的response对象,如果你请求成功则所有你想要的信息就在该对象中。 你也可以发送一个post请求: r = request.post('https://www.baidu

jwt

我只是一个虾纸丫 提交于 2019-12-01 20:23:54
目录 JWT 1、工作原理 2、drf-jwt 3、drf-jwt开发 JWT 1、工作原理 """ 1) jwt = base64(头部).base(载荷).hash256(base64(头部).base(载荷).密钥) 2) base64是可逆的算法、hash256是不可逆的算法 3) 密钥是固定的字符串,保存在服务器 """ 2、drf-jwt 官网 http://getblimp.github.io/django-rest-framework-jwt/ 安装子:虚拟环境 pip install djangorestframework-jwt 使用:user/urls.py from django.urls import path from rest_framework_jwt.views import obtain_jwt_token urlpatterns = [ path('login/', obtain_jwt_token), ] 测试接口:post请求 """ postman发生post请求 接口:http://api.luffy.cn:8000/user/login/ 数据: { "username":"admin", "password":"admin" } """ 3、drf-jwt开发 配置信息:JWT_AUTH到dev.py中 import

drf-jwt

只谈情不闲聊 提交于 2019-12-01 19:37:39
JWT 工作原理 """ 1) jwt = base64(头部).base(载荷).hash256(base64(头部).base(载荷).密钥) 2) base64是可逆的算法、hash256是不可逆的算法 3) 密钥是固定的字符串,保存在服务器 """ drf-jwt 官网 http://getblimp.github.io/django-rest-framework-jwt/ 安装子:虚拟环境 pip install djangorestframework-jwt 使用:user/urls.py from django.urls import path from rest_framework_jwt.views import obtain_jwt_token urlpatterns = [ path('login/', obtain_jwt_token), ] 测试接口:post请求 """ postman发生post请求 接口:http://api.luffy.cn:8000/user/login/ 数据: { "username":"admin", "password":"admin" } """ drf-jwt开发 配置信息:JWT_AUTH到dev.py中 import datetime JWT_AUTH = { # 过期时间 'JWT_EXPIRATION

vuex的学习

醉酒当歌 提交于 2019-12-01 18:43:45
vuex是什么? vuex是专为vue.js应用程序开发的状态管理模式 它采用集中式存储管理应用所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化 vuex也集成到vue的官方调式工具devtools extension 状态管理到底是什么? 说简单点就是把需要多个组件共享的变量全部存储到一个对象里面,然后将这个对象放到顶层的实例中,让其他组件可以使用 为什么我们不自己封装一个对象来管理呢? 因为封装在vuex里面的数据能够直接做到响应式 什么时候用vuex 当多个视图都依赖同一个状态的时候 vuex基本使用 在src目录下创建文件夹store,并且创建一个index.js文件, import Vue from 'vue' import Vuex from 'vuex' // 1.安装插件 Vue.use(Vuex) //创建实例 const store = new Vuex.Store({ state:{ count:0 }, mutations:{ increment(state){ state.count++ } } }) 然后让所有Vue组件都能使用这个store对象 来到main.js文件,导入store对象,并放到new Vue中 这样,其他组件就可以通过this.$store的方式,获取到这个store对象了 import Vue from 'vue'

Send HTTP Post Payload with Java

一曲冷凌霜 提交于 2019-12-01 18:04:15
问题 I'm trying to connect to the grooveshark API, this is the http request POST URL http://api.grooveshark.com/ws3.php?sig=f699614eba23b4b528cb830305a9fc77 POST payload {"method":'addUserFavoriteSong",'parameters":{"songID":30547543},"header": {"wsKey":'key","sessionID":'df8fec35811a6b240808563d9f72fa2'}} My question is how can I send this request via Java? 回答1: Basically, you can do it with the standard Java API. Check out URL, URLConnection, and maybe HttpURLConnection. They are in package java

浅谈json web token及应用

无人久伴 提交于 2019-12-01 17:39:43
Json Web Token (JWT),是一个非常轻巧的规范,这个规范允许在网络应用环境间客户端和服务器间较安全的传递信息。该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。JWT一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源。 在web应用中,我们提供的API接口,通过GET或者POST方式调用,在调用过程中,就存在着接口认证及数据的安全性问题。例如如下问题: 1、请求来自哪里,身份是否合法? 2、请求参数是否被篡改? 3、客户端请求的唯一性,是否为重复请求攻击(RepeatAttack)? 传统的Session认证方式 在传统的web应用中,服务端成功相应请求者,返回正常的response依赖于服务端通过一种存储机制把每个用户经过认证之后的会话信息(session)记录服务器端,一般记录到内存、磁盘、数据库中,这种方式在请求量和用户量增多的时候无疑会增大服务端的开销;如果是记录在内存中,那每次请求都分发登到该机器上才能授权获取资源,那在分布式系统中就存在着问题;因为是基于Cookie的,如果Cookie被截获,攻击者会盗用身份信息进行发送恶意请求,也就是“跨站请求伪造”(CSRF)。 基于token的认证方式 客户端用用户名和密码经过服务器认证之后,服务器会签发一个token返回给客户端

【渗透测试小白系列】之BurpSuite爆破High级别的DVWA(含CSRF-Token防爆破程序)

ぐ巨炮叔叔 提交于 2019-12-01 16:54:53
(本文仅为平时学习记录,若有错误请大佬指出,如果本文能帮到你那我也是很开心啦) 该文章参考 https://www.cnblogs.com/rnss/p/11233006.html ,感谢!!!本文仅为了学习交流,严禁非法使用!!! 一 、Token Token: 主要用来防御CSRF,而无法防止暴力破解,这是因为将一个随机产生的Token加入请求之后,每次请求Token都会改变,CSRF攻击者只能窃取受害者的cookie却不能伪造当次请求的Token,Token无法防止暴力破解的原因是Token每次都会随页面返回到前端,攻击者只要想办法自动化获得前端的Token即可进行暴力破解攻击 二、爆破过程 1.用火狐浏览器打开搭建好的DVWA站点,点击DVWA Security,调保护措施级别为High 这里已知DVWA的默认登录为admin,密码为password 2.点击Brute Force爆破,进入以下界面 3.破解单项,知道用户名,破解密码: 在DVWA的爆破中输入账号,密码随机输入,开启火狐浏览器的代理,打开BP,开启拦截状态,再回到DVWA点击登录,BP中就拦截到数据包,所拦截的数据包如下图所示 4.将拦截到的数据发送到Intruder模块,点击进入Intruder中的Positions模块,点击Clear键,去除不需要爆破的项,在重新选择要爆破的项,点击Add

Partitioning AWS Kinesis Firehose data to s3 by payload [duplicate]

随声附和 提交于 2019-12-01 16:22:14
问题 This question already has answers here : Write parquet from AWS Kinesis firehose to AWS S3 (3 answers) Closed 2 years ago . I am using AWS-Kinesis-Firehose to injest data to S3, and consume it afterwards with Athena. I am trying to analyze events from different games, to avoid Athena explore much data I would like to partition the s3 data using an identifier for each game, so far I did not find a solution, as Firehose receives data from different games. Does anyone knows how to do it? Thank