WEB - token
token概念参考
session和token的区别
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的更多相关文章
- 使用Json Web Token设计Passport系统
>>Token Auth机制 基于Token的身份验证是无状态的,我们不将用户信息存在服务器或Session中. 相比原始的Cookie+Session方式,更适合分布式系统的用户认证,绕 ...
- JWT【JSON Web Token】 简述
draft: http://self-issued.info/docs/draft-ietf-oauth-json-web-token.html http://tools.ietf.org/html/ ...
- 八幅漫画理解使用JSON Web Token设计单点登录系统
用jwt这种token的验证方式,是不是必须用https协议保证token不被其他人拦截? 是的.因为其实只是Base64编码而已,所以很容易就被解码了.如果你的JWT被嗅探到,那么别人就可以相应地解 ...
- JSON Web Token - 在Web应用间安全地传递信息(zhuan)
来自 http://blog.leapoahead.com/2015/09/06/understanding-jwt/ JSON Web Token(JWT)是一个非常轻巧的规范.这个规范允许我们使用 ...
- JSON Web Token
What is JSON Web Token? JSON Web Token (JWT) is an open standard (RFC 7519) that defines a compact a ...
- Web Token JWT
基于Token的WEB后台认证机制 JSON Web Token in ASP.NET Web API 2 using Owin 翻译:Token Authentication in ASP.NET ...
- [认证授权] 2.OAuth2(续) & JSON Web Token
0. RFC6749还有哪些可以完善的? 0.1. 撤销Token 在上篇[认证授权] 1.OAuth2授权中介绍到了OAuth2可以帮我们解决第三方Client访问受保护资源的问题,但是只提供了如何 ...
- Hacking JWT(JSON Web Token)
0x01 JWT工作流程 JSON Web Token(JWT)是一个非常轻巧的规范. 这个规范允许我们使用JWT在用户和服务器之间传递安全可靠的信息. JWT常被用于前后端分离,可以和Restful ...
- 什么是JWT(JSON WEB TOKEN)
转自于:http://www.jianshu.com/p/576dbf44b2ae 什么是JWT Json web token(JWT)是为了网络应用环境间传递声明而执行的一种基于JSON的开发标准( ...
- JSON Web Token - 在Web应用间安全地传递信息
转载自:http://blog.leapoahead.com/2015/09/06/understanding-jwt/ JSON Web Token(JWT)是一个非常轻巧的规范.这个规范允许我们使 ...
随机推荐
- CentOS7服务器状态下安装xampp
遇到的问题 1.远程不能访问phpmyadmin,只能在本地访问,但是本地为命令行模式. 需要修改一下服务器端的配置,我们找到 /opt/lampp/etc/extra/httpd-xampp.con ...
- Ansible - 模块 - shell
概述 ansible 的 shell 模块 准别 ansible 控制节点 ansible 2.8.1 远程节点 OS CentOS 7.5 无密码登录 已经打通 1. 模块 概述 ansible 功 ...
- Mysql数据库内置功能之函数
一 函数 MySQL中提供了许多内置函数,例如: 一.数学函数 ROUND(x,y) 返回参数x的四舍五入的有y位小数的值 RAND() 返回0到1内的随机值,可以通过提供一个参数(种子)使RAND( ...
- sublime-text3 安装 emmet 插件
下载sublime,http://www.sublimetext.com/ 安装package control :https://packagecontrol.io/ins... 这个地址需要翻墙,访 ...
- php相关问题学习(以备面试)
1.原味地址:[ http://www.yiichina.com/tutorial/57 ] 注:本文转自 http://www.icultivator.com/p/5535.html 整理了一份PH ...
- 【代码学习】PYTHON 进程
一.进程和程序的区别 编写完毕的代码,在没有运行的时候称之为程序 正在运行的代码,称之为进程 进程除了包含的代码意外,还需要运行的环境等 二.fork import os import time # ...
- bootstrap下拉选择框倒三角所占宽度
<select id="edit" class="form-control" style="width:42%;padding-right: 3 ...
- 判断是app 或者 网页
function openInWebview () { let ua = navigator.userAgent.toLowerCase(); if (ua.match(/MicroMessenger ...
- POJ 2142 The Balance(exgcd)
嗯... 题目链接:http://poj.org/problem?id=2142 AC代码: #include<cstdio> #include<iostream> using ...
- pdf .js和tableexport.js使用时遇到的2问题。
pdf .js 问题一:报错 network.js:71 The provided value 'moz-chunked-arraybuffer' is not a valid enum value ...