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 ![]() @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="(.*?)" 我连要匹配的是什么都不知道,更不要说哪些是参数哪些是匹配词了。 |