token概念参考

  1. https://ninghao.net/blog/2834
  2. https://stackoverflow.com/questions/1592534/what-is-token-based-authentication
  3. http://www.woshipm.com/pd/877760.html

session和token的区别

  1. https://security.stackexchange.com/questions/81756/session-authentication-vs-token-authentication
  2. https://www.zhihu.com/question/51759560

2. 用户注册后验证的激活链接也用到token。例如flask-mail实现这个功能。

详细看flasky中如何实现session和token

3. token可以防止csrf攻击,可以防止表单重复提交。

用Python模拟登录网站时需要获取authenticity_token。

原因: https://www.jianshu.com/p/d73e971da41c

注意: 模拟登录并不是进行CSRF攻击,只是模拟浏览器的行为

import requests
from bs4 import BeautifulSoup # cookies中存了sessionID和其他信息,来验证身份和提供信息给服务器
# 存取cookies,因为登录页面和登录后的页面的cookies不同,所以如果登录成功后还是用登录前的cookies的话,操作会失败,返回到登录页面。
# 用update整合登录前后的cookies,因为可能有关联。
cookie_dict = {} # 1. 获取authenticity_token,或者又叫csrf_token,防止表单重复提交,防止csrf攻击。其实就是token的功能。
# 发送http请求,获取登录页面
response1 = requests.get('https://github.com/login')
# 实例化文档解析器bs
s1 = BeautifulSoup(response1.text,'html.parser')
# 通过bs找到对应的标签对象,再找到token的值
token = s1.find(name='input',attrs={'name':'authenticity_token'}).get('value')
# 获取第一次请求(登录页面)的cookies,以字典的形式。因为requests的接口是要求传入的cookies是字典形式的。
cookie_dict.update(response1.cookies.get_dict()) # 2. 将用户名,密码和token,登录页面的cookies发送到服务端,post请求进行登录操作。
"""
utf8:✓
authenticity_token:ollV+avLm6Fh3ZevegPO7gOH7xUzEBL0NWdA1aOQ1IO3YQspjOHbfnaXJOtVLQ95BtW9GZlaCIYd5M6v7FGUKg==
login:asdf
password:asdf
commit:Sign in
"""
response2 = requests.post(
'https://github.com/session',
data={
"utf8": '✓',
"authenticity_token": token,
'login': 'xxx@qq.com',
'password': 'xxx',
'commit': 'Sign in'
},
cookies=cookie_dict
)
# print(response2.text) # 3. 登录成功后,利用登录后的cookies。进行访问/settings/emails这个页面的操作
cookie_dict.update(response2.cookies.get_dict())
#
response3 = requests.get(
url='https://github.com/settings/emails',
cookies=cookie_dict
)
print(response3.text) # 4. 操作成功后,将返回的页面写入文件中。(可以本地live server浏览)
with open('./test1111111.html','wb') as f:
f.write(response3.content)

4. 总结

token可保护重要的操作、服务,类似于session,是一种身份验证方法。不用每次都使用username和password去进行身份验证获得服务、操作权限。

WEB - token的更多相关文章

  1. 使用Json Web Token设计Passport系统

    >>Token Auth机制 基于Token的身份验证是无状态的,我们不将用户信息存在服务器或Session中. 相比原始的Cookie+Session方式,更适合分布式系统的用户认证,绕 ...

  2. JWT【JSON Web Token】 简述

    draft: http://self-issued.info/docs/draft-ietf-oauth-json-web-token.html http://tools.ietf.org/html/ ...

  3. 八幅漫画理解使用JSON Web Token设计单点登录系统

    用jwt这种token的验证方式,是不是必须用https协议保证token不被其他人拦截? 是的.因为其实只是Base64编码而已,所以很容易就被解码了.如果你的JWT被嗅探到,那么别人就可以相应地解 ...

  4. JSON Web Token - 在Web应用间安全地传递信息(zhuan)

    来自 http://blog.leapoahead.com/2015/09/06/understanding-jwt/ JSON Web Token(JWT)是一个非常轻巧的规范.这个规范允许我们使用 ...

  5. JSON Web Token

    What is JSON Web Token? JSON Web Token (JWT) is an open standard (RFC 7519) that defines a compact a ...

  6. Web Token JWT

    基于Token的WEB后台认证机制 JSON Web Token in ASP.NET Web API 2 using Owin 翻译:Token Authentication in ASP.NET ...

  7. [认证授权] 2.OAuth2(续) & JSON Web Token

    0. RFC6749还有哪些可以完善的? 0.1. 撤销Token 在上篇[认证授权] 1.OAuth2授权中介绍到了OAuth2可以帮我们解决第三方Client访问受保护资源的问题,但是只提供了如何 ...

  8. Hacking JWT(JSON Web Token)

    0x01 JWT工作流程 JSON Web Token(JWT)是一个非常轻巧的规范. 这个规范允许我们使用JWT在用户和服务器之间传递安全可靠的信息. JWT常被用于前后端分离,可以和Restful ...

  9. 什么是JWT(JSON WEB TOKEN)

    转自于:http://www.jianshu.com/p/576dbf44b2ae 什么是JWT Json web token(JWT)是为了网络应用环境间传递声明而执行的一种基于JSON的开发标准( ...

  10. JSON Web Token - 在Web应用间安全地传递信息

    转载自:http://blog.leapoahead.com/2015/09/06/understanding-jwt/ JSON Web Token(JWT)是一个非常轻巧的规范.这个规范允许我们使 ...

随机推荐

  1. redis位图命令

    概述 redis 的位图就是01的数据格式,redis 主要做有写入,读取和统计.位图相关的命令 : 其中set和get就是 read 和writer , bitcount 统计相关,bitop 是对 ...

  2. Docker - 周边 - Go Template

    概述 docker inspect -f 引出 希望学会后, 可以处理这个命令 问题: 这是啥 疑问 最开始, 我以为是 jsonpath 后来看 命令行的解释, 说叫 go template 但是我 ...

  3. SpringAOP学习之5种通知

    一.Spring的AOP分为以下5种类型通知 ①前置通知(Before):在连接点执行前执行该通知 ②正常返回通知(AfterReturning):在连接点正常执行完后执行该通知,若目标方法执行异常则 ...

  4. Win10上面安装vmware,并在Vmware上面安装Ubuntu

    一.安装vmware vmware安装包 链接:https://pan.baidu.com/s/178IOOuMOcotSrr6omIAM_A 提取码:c7ba vmware激活码 链接:https: ...

  5. 爬虫 - Scrapy中间件

    前提:看Scrapy架构图 不管什么Middlewares,都写在middlewares.py里面. 然后在settings.py里的DOWNLOADER_MIDDLEWARES或者SPIDER_MI ...

  6. 分布式事务 --- 2PC 和 3PC

    文章部分图片来自参考资料,侵删 概述 上一篇我们讲到CAP 理论,分区容错性,一致性,可用性三者不可能同时存在,而分区容错性又是客观存在的,那么为了保证可用性,我们牺牲了一致性,虽然我们保证不了强一致 ...

  7. pip 换源

    pip 换源 pip国内的一些镜像   阿里云 http://mirrors.aliyun.com/pypi/simple/   中国科技大学 https://pypi.mirrors.ustc.ed ...

  8. mui 获取本地APP本版号的两种方式

    第一种 mui.plusReady(function () { mui.getJSON("manifest.json", null, function (data) { vum = ...

  9. streamsets 安装

    这里有很多坑点 1. 我下载的是rpm 包,full 直接安装, 安装好后,路径在 /opt 目录 2. 启动    -注意报错 2.1  先给他创建 一个 日志目录, 安装好后是不存在这个目录 mk ...

  10. excel截取第一个空格前的字符

    excel 替换 空格字符后面的所有字符 =TRIM(REPLACE(A1,FIND(" ",A1),999,)) =TRIM(REPLACE(A1,1,FIND(" & ...