看雪论坛称得上是国内较好的安全论坛了。不过要1k雪币(论坛虚拟币,新用户几乎都可以获得220及以上)才可以升级为正式会员。临时会员有诸多限制,包括不能查看『WEB安全』版块等。对于我这种想白嫖的安全小白来说,唯一的方法就是每天签到随机获得1-10枚雪币。但是我经常会忘记签到,这等到猴年马月?
正好我最近正在学习JS,于是写了一个自动签到的脚本。当然,除了升级正式会员,雪币还有许多用处,所以对已经是正式会员的用户来说也还算有些用罢。
先上传送门:
实现方法
这个脚本的实现非常简单。
- 通过抓包可以发现,看雪论坛的签到是通过向
https://bbs.pediy.com/user-signin.htm
页面发送含Cookie的POST请求来实现的(也是绝大多数签到业务的设计逻辑),因此利用Axios库的API来向该页面发送请求,模拟用户签到。 - 签到完成后,将响应的数据赋值给一个对象,通过
response.data.code
和response.data.message
来判断网络正常情况下,签到任务的三种可能情况。code == 0 && message = <签到获得雪币数>
: 表示签到成功。推送消息显示`签到成功,获得${msg}雪币`。code == -1 && message == '您今日已签到成功'
: 表示已经签到过,此处为重复签到。推送消息显示’您今日已签到成功’。code == -1 && message == '请先登录'
: 表示Cookie验证失败。打印错误并不推送消息
- 推送消息的功能利用pushplus提供的接口实现,因为比Server酱免费版限制少一些,当然后续可能会添加server酱等其他选项。同样是利用了Axios的库来向接口发送请求。可以参考pushplus文档中心
- 利用GitHub Actions,在GitHub提供的主机上用node运行js,通过
crontab
完成定时任务。 - GitHub Actions在仓库60天以上没有任何活动时会被suspended(推迟),因此利用Keepalive Workflow来使工作流按期运行。
后续
希望各位能帮我点一个star✨(理直气壮)
由于这是我第一个js脚本,程序健壮性想必不甚好,欢迎大家提出issue和pr!
条评论