[原创方法!] 如何实现全自动登录各大网站? Cookie格式 、油猴脚本基础 解决Github邮箱验证,持久登录,免验证码
之前电脑内存小, 谷歌浏览器又是内存怪物, 每次浏览器不用的时候总是习惯关掉. 这就导致了每次进入常用的网站就要重新登陆, 非常烦; 对! 就是即使浏览器保存了密码, 大部分网站仍然要输入一下验证码才能进入(尤其是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 http://tampermonkey.net/
// @version 0.1
// @description Bilibili/CSDN/Github/无需点击,全自动登录
// @author Eric
// @match *://*.bilibili.com
// @grant none
// ==/UserScript==(function () {'use strict';document.cookie = "SESSDATA=[换成你自己的SESSDATA值]; Domain=.bilibili.com;";})();
在Bilibili中, 负责用户登录的Cookie 是SESSDATA, 只需要写一个油猴脚本, 保存即可
其中 match 换成你想要匹配的网站的网址即可
这里有几个坑:
一定要为Cookie设置域名! 不然保存的是 www.bilibili.com B站自己识别不到,只识别 ".bilibili.com" 这个坑真的是我试了好久才试出来!
之后打开B站, 每次进入B站! 自动登录!! 完美!!!
完 美 解 决!!!!!
其他的网站也可以类似!
很简单的一个小功能前前后后忙活了好久! 各种试错、学习 才有了最后的一行代码= =
而且可能处于安全原因, Greasy Fork上面也没有类似的脚本, 只好自己一点一点琢磨.
成功的时候真的开心到飞起! 最后付一点个人笔记(来自各大博客, 信息比较杂, 如有侵权,联系作者修改删除)
3 油猴脚本的格式说明
首先是元数据块: 元数据块是描述脚本的一个用户脚本部分。它通常包含脚本名称,命名空间,描述和包含和排除规则。元数据块出现在JavaScript行注释中,可能会出现在脚本内的任何位置, 但通常靠近文件的顶部。
键 | 示例 | 备注 |
@name | @name 脚本名称 | 脚本的名称。该项将显示在页面的标题以及链接内容,必填项。 |
@description | @description 脚本功能描述 | 脚本功能的描述,显示在脚本标题下面,必填项。 |
@namespace | @namespace 及 @name 这两个属性将帮助用户脚本管理器判断是否已安 装该脚本。 | |
@version | @version 0.0.1 | 脚本的版本标记将使用 Mozilla 版本格式 并显示于脚本的简介页面,必填 项。 |
@include @exclude @match |
@match *://www.52pojie.cn/* | 描述脚本将执行的页面。该列表会被分析并展示到脚本的简介页面,以及 用于脚本分类。 |
@require | @require http://cdn.bootcss.com/jquery.min.js | 引用外部脚本到您的脚本 |
@updateURL @installURL, @downloadURL |
告知用户脚本管理器应该在哪个地址获取脚本更新。 | |
@license | 脚本所使用的许可协议名称或地址,该协议需包含用户是否允许二次分发 或修改 脚本的权利。不提供许可协议则表示用户仅允许个人使用且不得 二次分发;该协 议将在脚本的简介页面显示。 | |
@supportURL | 用户可获得该脚本技术支持的链接地址 (如:错误反馈系统、论坛、电子 邮件),该链接将显示在脚本的反馈页面。 | |
@contributionURL | 用于捐赠脚本作者的链接,该链接将显示在脚本的反馈页面。 | |
@contributionAmount | 建议捐赠金额,请配合 @contributionURL 使用。 | |
@compatible | 标记此脚本与某个浏览器兼容,兼容性信息将显示在脚本的简介页面上。 | |
@incompatible | 标记此脚本与某个浏览器不兼容,兼容性信息将显示在脚本的简介页面 上。 |
这一部分创建油猴脚本的时候就会自带, 虽然看上去像是注释, 不过也不要删除! 是有用的元数据
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 2017 12:00:00 UTC";
通过 path 参数,您可以告诉浏览器 cookie 属于什么路径。默认情况下,cookie 属于当前页。
document.cookie = "username=Bill Gates; expires=Sun, 31 Dec 2017 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 2017 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邮箱验证,持久登录,免验证码相关推荐
- 在油猴脚本中添加css样式的方法
由于项目要求,需要在系统页面注入dom元素,且对这些注入的元素在UI界面层有美观度要求,就避免不了要对其CSS样式优化. 通常在油猴脚本中添加CSS样式的方法如下: 一.引入外部css文件 // @r ...
- 中国电信数字中南智慧网自动登录油猴脚本
中国电信数字中南智慧网自动登录油猴脚本 每次登陆校园网都要输入账号密码再点登陆,于是想自己编写一个油猴脚本自动登录.今天花了半个小时把脚本做出来了,写一篇教程帮助大家. 首先在浏览器上安装油猴插件,推 ...
- 我的第一个油猴脚本「屏蔽CSDN底下的登录栏」
CSDN博客不登录就弹这么个东西,挡住视线不胜其烦,你问我为啥不登录?登录过呀,关了浏览器又要重新登,csdn的session不保存的吗(emmmm我也不太懂这方面的东西(´Д`) 于是我就想,在每次 ...
- 第一次发布npm包时可能遇到到问题。重名、邮箱验证、登录账号、淘宝源换成npm源
怎么发布自己到模块到npm? 这个文章写得简单明了,这里我就不过多阐述. https://www.jianshu.com/p/f5d4c891830f 不过补充一点:在发布包之前,首先去npm市场去搜 ...
- 使用邮箱验证实现登录功能(发送邮件,redis)
目录 概述 前端搭建 后端搭建 生成验证码-存入redis(主要过程代码) 发送邮件(主要过程代码) 登录验证-取出redis中数据进行验证(主要代码) 完整代码一-LoginController 完 ...
- 邮箱验证账号登录 Java
一.需求 当我们想让我们的网站消除恶意注册的情况,我们可以这样做,通过邮箱验证,这样又可以很好的表现出网站的正规性,所以我们在这里提供一个邮箱验证的工具类,先简单说一下步骤,然后再提供完整的工具类 二 ...
- 【MATLAB】基于油猴脚本和MATLAB下载原创力文档
前言 最近在油猴找到一个脚本,挺有意思,它能够下载那些允许预览的文档,这个到是很常见的一种脚本,其原理大概就是自动截图得到图片,然后给你合成PDF文档.这也就是为什么只能下载那些能够预览的文档. ...
- 油猴脚本安装以及使用方法
使用油猴脚本.首先得在Edge浏览器中安装油猴的拓展. 打开到如上图所示的加载项页面.然后搜索Tampermonkey,图中所示的第三个,点击获取安装成功油猴了. 接下来步骤,打开拓展显示→点击获取新 ...
- python 爬虫 微博 github_GitHub 热门:各大网站的 Python 爬虫登录汇总
原标题:GitHub 热门:各大网站的 Python 爬虫登录汇总 (给数据分析与开发加星标,提升数据技能) 转自:机器之心,GitHub 作者:CriseLYJ 不论是自然语言处理还是计算机视觉,做 ...
最新文章
- 查看matlab中函数源代码的方法
- Intellij IDEA 中无法下载 Cloud Toolkit 问题解决
- 左神算法:判断 t1 树是否包含t2 树全部的拓扑结构(剑指 Offer 26. 树的子结构,Java版)
- iOS Appstore 版本更新
- html中左侧播放器插件,简洁实用的html5音乐播放器插件
- Hbase Compaction 源码分析 - RatioBasedCompactionPolicy 策略
- JAVA分布式篇2——Zookeeper
- Java标识符和关键字(static,final,abstract,interface)
- 随机效应估算与固定效应估算_【机器学习】随机生存森林
- C++ Notes(focus on c++)
- TypeError: Cannot set properties of undefined (setting ‘innerHTML‘)
- Endianness
- 音频处理之语音加速播放
- win10计算机管理看不见蓝牙,如何解决Win10设备管理器找不到蓝牙?
- 学习Opencv笔记(二)————hsv色系
- NodeJS集成Redis实战
- 调度算法——时间片轮转、优先级、多级反馈队列(例题详细!!!)
- 谈谈Java项目经验
- idea 设置字体大小
- 微信小程序表单必填项设置
热门文章
- 如何把flv转换成mp3格式 音频转换器哪个好
- 线性模型篇之感知机(PLA)数学公式推导
- N1 从 armbian 刷回 webpad 方法
- SSM框架详细整合教程(Spring+SpringMVC+MyBatis)
- 算法与数据结构学习(46)-B树、B+树和B*树
- 字节飞书提前批一面(凉的透透的)
- 【大会信息分享】新一代推荐算法核心技术与实践
- 1077篇 ! ICCV2019论文接收结果公布(附70篇论文链接抢先读,含Oral) 更新中
- 绩效考核软件,强势助力二、三级公立医院绩效大考
- 转载分享一批老外的超牛25行代码参赛作品的Flash源文件