使用requests 登录xsrf 验证的网站

使用 requests 登录 xsrf 验证的网站,

使用requests 登录xsrf 验证的网站

理解 xsrf

跨站请求伪造(英语:Cross-site request forgery),也被称为 one-click attack 或者 session riding,通常缩写为 CSRF 或者 XSRF, 是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。跟跨网站脚本(XSS)相比,XSS 利用的是用户对指定网站的信任,CSRF 利用的是网站对用户网页浏览器的信任。

requests 实现

requests库是一个常用的用于http请求的模块,它使用python语言编写,可以方便的对网页进行爬取。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import sys
import requests

URL = 'http://xxxxxxx/sign-in'

client = requests.session()

# Retrieve the CSRF token first
client.get(URL)  # sets cookie
csrftoken = client.cookies['_xsrf']
print csrftoken

EMAIL = "xxxx"
PASSWORD = "xxxx"

login_data = dict(name=EMAIL, password=PASSWORD, _xsrf=csrftoken, next='/')

#r = client.post(URL, data=login_data, headers=dict(Referer=URL))
r = client.post(URL, data=login_data)

print r.status_code
print r.text
print r.json()

原理

首先第一次请求,取到服务端响应的cookies,然后再携带cookies 模拟浏览器请求。

本文网址: https://pylist.com/topic/98.html 转摘请注明来源

Suggested Topics

使用caddy 快速部署多个https 网站

caddy 是用go实现的轻便web部署工具,其功能 nginx 类似,比它轻量、方便。特别是方便使用免费的 Let's Encrypt https 证书。下面是以ubuntu/debian 环境介绍实际的部署过程。...

Mac 登录 App Store 出现“发生了未知错误”的解决方法

当更新电脑里的应用时需要登录 App Store,很久以前就出现这情况了,因为升级的应用不是很急,也就放下不管。现在需要安装新的应用,而且没有找到其它途径下载`dmg`文件安装,只能从App Store 安装。于是下决心解决登录时出现“发生了未知错误”的问题。...

使用Golang selenium WebDriver 自动登录微博

有时候在Golang 程序里需要读取微博的某个页面内容,提示需要登录。最简单的方法是在浏览器里登录后,直接复制Cookie 的内容,然后 http 请求带上Cookie。这样会有人工介入,不是很方便,这里借用 selenium WebDriver 来打开微博登录页面,然后自动填入用户名与密码。...

时隔多年,关于网页用QQ、微博登录

一个2012年开通的个人小网站,一直只用 QQ 一键登录。7年后做一个小改版,回调地址改变了,登录后台修改。三天了还没通过审核,但已能正常使用。...

用SSH 密钥登录VPS

以前没有在VPS 上部署重要的东西,设置一个稍复杂的密码就可以。下面对记录一下VPS 禁止用户名+密码登录,仅使用密钥登录的过程。...

用github 帐号登录之tornado 实现

用github 帐号登录之tornado 实现,主要面向开发者的可以使用这个第三方登录。在gist 上发现的,直接拿来,简单修改一下。...

Leave a Comment