2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > [原创方法!] 如何实现全自动登录各大网站? Cookie格式 油猴脚本基础 解决Gith

[原创方法!] 如何实现全自动登录各大网站? Cookie格式 油猴脚本基础 解决Gith

时间:2024-03-22 05:18:15

相关推荐

[原创方法!] 如何实现全自动登录各大网站? Cookie格式  油猴脚本基础  解决Gith

之前电脑内存小, 谷歌浏览器又是内存怪物, 每次浏览器不用的时候总是习惯关掉. 这就导致了每次进入常用的网站就要重新登陆, 非常烦;对! 就是即使浏览器保存了密码, 大部分网站仍然要输入一下验证码才能进入(尤其是Github还要邮箱验证)!

可能每个程序员都是强迫症+效率狂热追求者hh. 笔者期间想了各种各样的办法来解决这个问题! 前前后后小一个月,终于完美解决~ 下面笔者想以Bilibili网站的登录为例, 按照解决这个问题的时间顺序介绍一下笔者的解决过程; 最后写一些相关技术的基本知识作为个人笔记.

首先警告: 方法核心是通过向浏览器写入网站上用于验证的Cookie; 明文导出、加载关键的Cookie信息是非常危险的! 不建议在存在资金的网站上使用.

用到的工具:

谷歌浏览器EditThisCookie插件(饼干插件)油猴插件

1 笔者最初想到的方法: 导出Cookie+导入 (使用.bat文件优化)

1.1 基本

使用饼干插件, 可以导出当前浏览器的Cooki信息, 笔者将几个常用的网站(GitHub,CSDN,bilibili...)登录后, 导出Cookie信息, 保存到txt中

保存了很多很多~

这里有第一个坑:

导出的格式是JSON!

JSON的导入Cookie插件的格式是:

[ {你的第一个Cookie} , {你的第二个Cookie} ]

注意最后一个后面没有逗号, 注意最外部要用中括号括起来.

吃了在学校没用过JSON的亏

全部导出之后, 只需要每次复制, 然后点击插件, 导入, 刷新网站就可以实现了自动登录!

1.2 第一个优化

即使是全部导出了, 每次开机之后仍需要:

打开txt, Ctrl+A全选, Ctrl+c复制, 打开插件点击导入, 粘贴 ,刷新

笔者想到的办法是使用 .bat文件, 自动复制Cookie.

type Cookie.txt|clip

放到同一目录下, 一行代码就可以解决复制!

这样只需要双击.bat文件, 导入即可

2 使用油猴脚本JS代码全自动导入!

最近笔者在0基础学习Vue, 顺便学了一些JS的用法, 就想着能不能用油猴脚本自动的进行导入呢!

边开始学习了一下油猴脚本的基本格式、Cookie的保存格式、JS操作Cookie的相关方法

直接上代码:

// ==UserScript==// @name Eric全自动网站登录// @namespace /// @version0.1// @description Bilibili/CSDN/Github/无需点击,全自动登录// @author Eric// @match *://*.// @grant none// ==/UserScript==(function () {'use strict';document.cookie = "SESSDATA=[换成你自己的SESSDATA值]; Domain=.;";})();

在Bilibili中, 负责用户登录的Cookie 是SESSDATA, 只需要写一个油猴脚本, 保存即可

其中 match 换成你想要匹配的网站的网址即可

这里有几个坑:

一定要为Cookie设置域名! 不然保存的是 B站自己识别不到,只识别 "." 这个坑真的是我试了好久才试出来!

之后打开B站, 每次进入B站! 自动登录!! 完美!!!

完 美 解 决!!!!!

其他的网站也可以类似!

很简单的一个小功能前前后后忙活了好久! 各种试错、学习 才有了最后的一行代码= =

而且可能处于安全原因, Greasy Fork上面也没有类似的脚本, 只好自己一点一点琢磨.

成功的时候真的开心到飞起! 最后付一点个人笔记(来自各大博客, 信息比较杂, 如有侵权,联系作者修改删除)

3 油猴脚本的格式说明

首先是元数据块: 元数据块是描述脚本的一个用户脚本部分。它通常包含脚本名称,命名空间,描述和包含和排除规则。元数据块出现在JavaScript行注释中,可能会出现在脚本内的任何位置, 但通常靠近文件的顶部。

这一部分创建油猴脚本的时候就会自带, 虽然看上去像是注释, 不过也不要删除! 是有用的元数据

4 JS操作Cookie

4.1通过 JavaScript 创建 cookie

JavaScript 可以用document.cookie属性创建、读取、删除 cookie。

通过 JavaScript,可以这样创建 cookie:

document.cookie = "username=Bill Gates";

您还可以添加有效日期(UTC 时间)。默认情况下,在浏览器关闭时会删除 cookie:

document.cookie = "username=John Doe; expires=Sun, 31 Dec 12:00:00 UTC";

通过path参数,您可以告诉浏览器 cookie 属于什么路径。默认情况下,cookie 属于当前页。

document.cookie = "username=Bill Gates; expires=Sun, 31 Dec 12:00:00 UTC; path=/";

4.2通过 JavaScript 读取 cookie

通过 JavaScript,可以这样读取 cookie:

var x = document.cookie;

4.3通过 JavaScript 改变 cookie

通过使用 JavaScript,你可以像你创建 cookie 一样改变它:

document.cookie = "username=Steve Jobs; expires=Sun, 31 Dec 12:00:00 UTC; path=/";

旧 cookie 被覆盖。

4.4通过 JavaScript 删除 cookie

删除 cookie 非常简单。

删除 cookie 时不必指定 cookie 值:

直接把expires参数设置为过去的日期即可:

document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";

您应该定义 cookie 路径以确保删除正确的 cookie。

如果你不指定路径,一些浏览器不会让你删除 cookie。

5 Cookie 的格式

cookie的格式

Set-cookie: NAME=VALUE Expires/Max-age=DATE Path=PATH Domain=DOMAIN_NAME SECURE

参数意义:

NAME: cookie的名字

VALUE: cookie的值。

Expires: cookie的过期时间。

Path: cookie作用的路径。

Domain: cookie作用的域名。

SECURE:是否只在htps协议下起作用

各个属性之间用 分号分隔! Domain很关键!

6 HttpOnly

如果cookie中设置了HttpOnly属性,那么通过js脚本将无法读取到cookie信息,这样能有效的防止XSS攻击,窃取cookie内容,这样就增加了cookie的安全性,即便是这样,也不要将重要信息存入cookie。XSS全称Cross SiteScript,跨站脚本攻击,是Web程序中常见的漏洞,XSS属于被动式且用于客户端的攻击方式,所以容易被忽略其危害性。其原理是攻击者向有XSS漏洞的网站中输入(传入)恶意的HTML代码,当其它用户浏览该网站时,这段HTML代码会自动执行,从而达到攻击的目的。如,盗取用户Cookie、破坏页面结构、重定向到其它网站等。

一般的网站中都有这个熟悉哦~ 不过如果使用油猴的话带这个属性, 就无法进行写入; B站的话即使写入的Cookie没有HttpOnly属性只要刷新两次还是可以进入的

7 能不能操作本地文件? -不能

读者还想过 使用油猴脚本操作本地的复制.bat, 然后可以实现打开网站就可以自动复制,会更方便

能不能实现? 不能!

只能是Windwos系统+IE浏览器才可以使用本地的JS操作本地可执行文件

使用ActiveXObject

try{var wsh=new ActiveXObject("wscript.shell");wsh.run('file:///C:\\Program%20Files%20(x86)\\XXXX.exe');}catch(e){alert('找不到文件(或它的组件之一)。请确定路径和文件名是否正确.');}

8 结束

从最开始的导出Cookie复制粘贴进来, 到今天使用油猴, 前前后后为了解决这个问题想了好多办法~

学会了JSON格式、JS的基本写法、油猴脚本的创建~

夸自己! 不愧是工科~ hhhh

希望之后能学会谷歌浏览器插件的编写~ 能写个CRX直接在浏览器插件里面一键登录~

最近又忙又烦躁~

在这祝自己一切顺利hiahiahia

[原创方法!] 如何实现全自动登录各大网站? Cookie格式 油猴脚本基础 解决Github邮箱验证 持久登录 免验证码

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。