我们平时使用的网站以及软件的登录功能,大部分都是用账号密码的登录方式实现的,但其实,有一种方法可以不需要密码直接登录——Cookie。
不是这个,而是这个——
简单来说,Cookie保存了你的登录状态,由多组键值对组成,比如下面的内容是我登录到我的博客后获取到的Cookie:
argon_user_token=8559**********************9560; wp-settings-time-1=1736401042; wp-settings-1=***********************; wordpress_logged_in_*********************************=undefined************************************************************************; PHPSESSID=m7ip*****************r6hd
Cookie属于敏感信息,如果被他人拿到就能获取到你的登录状态,从而直接登录你的账号。
通常我们可以在浏览器中按F12进入网络选项卡找到你的Cookie,获取到Cookie后直接注入浏览器就可以延续登录状态。
比如下面的代码读取了cookie.txt中的Cookie信息并通过selenium注入到浏览器实现登录网易云。
from selenium import webdriver
import time
with open('cookie.txt') as f:
cookie_str = f.read()
cookies = [
{"name": key.strip(), "value": value.strip()}
for key, value in (item.split("=") for item in cookie_str.split(";"))
]
driver = webdriver.Chrome()
driver.get("https://music.163.com/")
for cookie in cookies:
driver.add_cookie(cookie)
driver.refresh()
input("Press Enter to quit...")
执行程序后即可得到如图结果:
当然,并不是只要注入Cookie就能实现登录的,这些网站还会判断其他参数。比如B站就无法使用Cookie注入进行登录。
Cookie机制在一些开源项目中很有用,比如批量保存QQ空间的一些项目通过Cookie下载你的空间动态,还有我的NCM-Downloader也使用了Cookie实现用户账号登录下载VIP歌曲。但是也有别有用心的人会通过盗取Cookie来作恶。比如油管上一些大Youtuber都中招过的盗取谷歌账号Cookie来登录他们的油管进行诈骗直播。