Skip to content

Latest commit

 

History

History
 
 

script

脚本

当前目录下的脚本都是基于 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 的脚本(MagicJS 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 开始,正式对多账户进行支持,部分脚本已实现多账户签到,如百度贴吧签到。

多账户分为以下几种情况:

  1. APP本身可以支持多账户

    以百度贴吧为例,APP客户端本身能够切换账号。这类程序实现多账号,仅需要切换账号后,重启APP以重新获取Cookies即可。

  2. 通过网页登录的多账户

    可以通过隐身模式、无痕模式等浏览器功能,来实现多账号同时登录,如什么值得买的签到。

  3. APP不支持多账户,但退出账户后Cookies不会失效

    通过获取Cookie -> 退出账号 -> 登录新账号 -> 获取新账号Cookie的方式来实现多账户。

  4. 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等数据,同步至恶意脚本所提供的青龙面板中,则会造成信息泄露。此类风险,在当前的条件下,没有很好的解决方式。

所以再次建议不要使用被混淆和加密的脚本。

代挂

本仓库的脚本都不提供任何代挂服务,将Cookies交由第三方服务器代挂签到,属于高风险中的高风险!您不应该将Cookies泄露给任何人!包括脚本作者!

不要相信所谓的代挂签到,愿意无偿提供服务器和带宽,免费帮你代挂签到的好人,少之又少,保护好自己的信息!