1
hiccup00 2020-05-03 20:39:48 +08:00 via Android
借楼求个有验证码的网站登录并签到的方法~
|
2
ClericPy 2020-05-03 21:07:22 +08:00
1. 先定时访问, 判断出 Cookie 实际有效期. 在 Cookie 字段里的 expire 或者 max age 是给浏览器看的, 有时候不是服务端那边的, 所以不保险.
2. 长期有效方面, 如果你能用 Headless 或者正常的方式成功登录, 那只要有一步验活请求, 就知道 Cookie 失效时候刷新 Cookie 就好了. 验证码方面大部分都用的机器视觉那些库做的, 滑动验证码我在 Headless 里用 dispatch Event 的方式拖拽每次都被反爬, 用 pyautogui 去拖拽就不会, 头疼... |
3
imdong 2020-05-03 21:13:08 +08:00
回楼主:很多 Cookies 过期是客户端控制,所以如果保存 Cookies 使用,弄不好就不会过期了。
但是有些网站会识别 不同的浏览器 / 不同的 IP 会强制退出,所以具体情况具体分析, 原则上,楼主的思路没错,直接保存 Cookies 使用,能解决绝大多数场景。 回 @hiccup00 #1:创建 web 服务器,模拟正常请求获取验证码以后,使用 base64 img 返回给页面(一般会把对应的 cookies 也回给客户端), 浏览器端手动输入验证码后,提交给服务器,服务器继续后续的登录请求。 此方法不适用 拖动,点击类新型验证码。 另外,曾设想过另一个想法(中间人攻击): 服务器开启 http 代理,浏览器设置代理登录,登录成功后,服务器端窃取请求,即可。 |
4
jugelizi 2020-05-03 21:24:39 +08:00
实践出真知
你既然经常用这个网站 可以尝试修改下浏览器中的 cookie 有效期 有的网站 jwt 方案的几乎永久有效 不排除服务器重启之类清空服务端登录信息的 |
5
yukiloh 2020-05-03 21:38:10 +08:00
我抓 smzdm 的登陆给看晕了,后来索性不登陆了
|
6
luckyswag 2020-05-03 23:41:54 +08:00
https://qiandao.today/
|
7
crab 2020-05-04 06:39:54 +08:00
要长期肯定只能账号密码正常登陆,也就是失效后自动登陆。用 cookies 取决网站那边,有的持续访问会一直保持登陆状态,有的就不行。
|
8
crella 2020-05-04 10:15:12 +08:00 via Android
水木社区的登录 cookie 我也是搞不清什么情况;浏览器复制 curl 命令,然后用 curl 发送,照样返回访客模式的 set-cookie,估计登录的时候有 js 动态计算一些东西。
|
9
SenLief 2020-05-04 10:35:56 +08:00
cookie 长期应该不容易,一般还是要写模拟登录程序的。
|
10
Virace 2020-05-04 12:04:10 +08:00 via Android
觉得滑动验证不好过!如果自己用,其实可以再签到失败给自己发个邮件!手动更新 cookie,这也不乏是一种方法!
|
11
cnzjl 2020-05-04 13:37:18 +08:00 via Android
只能定时去刷新 cookie
|
12
loli 2020-05-04 14:43:41 +08:00
@luckyswag
我也有在用这个,好像也是 v2 老哥自建还开源了的,已经持续几年了吧。 这里的 cookies 有效期我也奇怪,我电脑本地的 cookies 都失效了网站上的还能签到。 还有就是好多地方都有防这个的,比方说地址带特征码的不知道怎么解决,formhash=e1ad8d3d 这种 |
14
vagrantear 2020-05-07 16:13:51 +08:00 1
@loli 主页有的,写个正则获取一下就行
|
15
loli 2020-05-07 19:37:48 +08:00
@vagrantear
请问下文档在哪呀? github 翻了半圈没找到里面说的文档在哪。 在被关闭的 issues 里找到了个帖子,看了半天还是没明白这正则是什么格式。 我只明白最基础的正则 比方说 \?formhash=(.*?)\\ 匹配 html?formhash=e1ad8d3d\ 我这样写还是错的,匹配不到。 他里面的例子有好多其他参数? 比方说 redeem\?once=(.*?)' 我翻了下只匹配 \?once=(.*?)' ,redeem 好像是特殊参数。 还有一些看都看不懂。。 比方说 type="hidden" value="(.*?)" name="once" type="password"\sclass="sl"\sname="(.*?)" 我连要匹配的是什么都不知道,更不要说哪些是参数哪些是匹配词了。 |