.. | ||
applestore | ||
bilibili | ||
dingdong | ||
eleme | ||
famijia | ||
luka | ||
magicjs/images | ||
manmanbuy | ||
meituan | ||
obsolete | ||
smzdm | ||
startup | ||
synology | ||
tieba | ||
zhihu | ||
boxjs.json | ||
gallery.json | ||
README.md |
脚本
当前目录下的脚本都是基于 MagicJS 2 或 MaicJS 3 框架进行开发。
其中 MagicJS 2 已停止维护,以下涉及的特性,都以MagicJS 3为主。
你可以在仓库的README中,查询到哪些项目是基于MagicJS3的。
涉及NodeJS(含青龙面板)的内容,统一在此说明,单个脚本的README中不再赘述。
数据存储
iOS平台
基于 MagicJS 2/3 编写的脚本,运行在iOS平台的APP中时,数据存储在由APP提供的存储池。
NodeJS
运行在NodeJS环境中时,数据存储在脚本同级目录下的magic.json文件中,而不存储在环境变量。
如果有需求,可以将不同的脚本存放在不同的目录下,读取不同的magic.json文件来实现数据隔离。
如果将所有的脚本数据存储在同个magic.json文件中,它们也可以和谐相处。
例如下面的例子,把什么值得买和饿了么的数据存储在一起。
{
"smzdm_cookie": "xxxxxxxxxxxxxxxxxxxxxxx",
"eleme_app_longitude": "xxxxxxxxxxxxxxxxx",
"eleme_app_latitude": "xxxxxxxxxxxxxxx",
"eleme_task_keywords": "xxxxxxxxxxxxxxxxxxxx",
"magic_bark_url": "xxxxxxxxxxxxxxxxxxxxxx"
}
脚本变量
基于MagicJS 3的脚本,会在README中明确说明使用的变量。在iOS平台下,这些变量可以在BoxJS中配置和修改。在NodeJS环境下,这些变量需要手动编辑magic.json文件。
共用变量
基于 MagicJS 3 的脚本,除脚本自身所需的变量外,以下的变量是所有脚本共用的。所有基于 MagicJS 3 的脚本(Magic 2 除外),在iOS平台下都会受到共用变量的影响。而在NodeJS环境下,共用变量会影响所有读取同一个magic.json的脚本。
变量名 | 类型 | 说明 |
---|---|---|
magic_bark_url | string | Bark推送链接,如 https://api.day.app/xxxxxxxxxxxxxxx/ |
magic_loglevel | string | 日志等级,默认INFO ,出现问题选DEBUG ,更多等级见MagicJS手册 |
青龙面板
MagicJS 3 增加“青龙面板模块”,可以将所使用的变量,直接同步到青龙面板的magic.json文件中。以此来实现手机仅获取Cookie,青龙面板进行签到。
同步变量需要通过手机访问青龙面板接口,请确保青龙面板可以被手机正常访问。
同步开关
支持数据同步到青龙面板的脚本,在BoxJS中都会有同步开关,请先将其打开。
如果没有青龙面板、访问缓慢,甚至无法访问,不建议在平时打开此功能,以免由于网络问题造成客户端加载数据缓慢。
配置连接
使用前,需要在BoxJS中配置青龙面板的链接。
配置完成后,如果访问没有问题,每次获取到的Cookies,都会同步到青龙面板。
存储目录
数据存储在青龙面板的脚本管理目录下的magic.json文件中。只有在同级目录下的脚本才会访问magic.json文件中的数据。
多账户
从 MagicJS 3
开始,正式对多账户进行支持,部分脚本已实现多账户签到,如百度贴吧签到。
多账户分为以下几种情况:
-
APP本身可以支持多账户
以百度贴吧为例,APP客户端本身能够切换账号。这类程序实现多账号,仅需要切换账号后,重启APP以重新获取Cookies即可。
-
通过网页登录的多账户
可以通过隐身模式、无痕模式等浏览器功能,来实现多账号同时登录,如什么值得买的签到。
-
APP不支持多账户,但退出账户后Cookies不会失效
通过获取Cookie -> 退出账号 -> 登录新账号 -> 获取新账号Cookie的方式来实现多账户。
-
APP不支持多账户,退出账户后Cookies失效
此类情况需要在不同设备上登录不同的账户,将Cookies同步到青龙面板,由青龙面板实现多账户签到。
数据存储
多账户的数据以JSON格式存储。
以百度贴吧的为例,多账户Cookies存在在JSON中的格式,类似下面:
{
"tieba_signin_cookie": {
"magic_session": true,
"百度用户1": "你第一个账户的Cookie",
"百度用户2": "你第二个账户的Cookie",
"百度用户3": "你第三个账户的Cookie"
}
}
其中 "magic_session": true
不可删除和更改,它用来辅助MagicJS判断存储的是Sessions还是Object。
百度用户1
这样的文字可以随意编写,只要不重复。如果是由脚本自动获取,通常是用户id等唯一标识。
不建议手动修改多账户的JSON字符串,错误的JSON字符串可能会导致脚本运行异常。
脏数据
如果因意外情况产生脏数据,导致多账户的签到出现异常,建议将Cookie数据进行删除,重新获取所有账户的Cookie。
例如上述的tieba_signin_cookie
,出现异常时,应将整个tieba_signin_cookie
删除,全部重新获取。
安全性
JavaScript脚本可以执行非常多的操作,通常来说,在客户端中调用脚本属于高风险行为。您在使用脚本前,务必确认脚本安全可信,如果有条件,应该仔细阅读脚本代码。
特别注意
脚本是否含有对外发送请求的操作
如带有Cookie、Token、Password等等可以作为身份凭证的请求,这类请求比较敏感,务必确认请求的目标安全可信。理论上恶意脚本可以利用你的Cookie,进行非常多的行为,如发帖、购物等等。
脚本对响应体进行修改
对于修改响应体的脚本,必须确认修改响应体内容可信。通过对Http请求响应体的修改,可以在客户端上显示一些欺诈信息,例如显示一些虚假的中奖信息。
应慎重使用可以由远端控制修改响应体的脚本,此类脚本可能在当初检查时执行的结果是正常的,但是在某个时刻,可由远端控制修改响应内容。
加密的脚本
本仓库的脚本源码都完全开放,不加密不混淆,不会将你的信息发送给任何第三方,欢迎进行Code Review。
出于安全性考虑,不建议使用任何被加密、混淆的脚本。
青龙面板
如果你在使用青龙面板,由于magic.json内的数据是完全开放不做加密的,并不能防止其他恶意脚本读取magic.json导致信息泄露。
所以请务必确保在青龙面板上运行脚本的安全性,本仓库的脚本不会窃取你的数据,但是无法避免第三方恶意脚本,窃取由magic.json的内容。
数据同步
MagicJS 3的青龙模块,提供了快速将手机上数据同步至青龙面板的功能,但也带来额外的安全风险。
青龙面板所需的登录配置,受运行环境限制,仅能以明文的形式存储在客户端提供的存储池中。
如果恶意脚本篡改青龙面板的登录配置,脚本会将你的Cookies等数据,同步至恶意脚本所提供的青龙面板中,造成信息泄露。此类风险,在当前的条件下,没有很好的解决方式。
所以再次建议不要使用被混淆和加密的脚本。