浏览器扩展V3开发系列之 chrome.cookies 的用法和案例

【作者主页】:小鱼神1024

【擅长领域】:JS逆向、小程序逆向、AST还原、验证码突防、Python开发、浏览器插件开发、React前端开发、NestJS后端开发等等

chrome.cookies API能够让我们在扩展程序中去操作浏览器的cookies。

在使用 chrome.cookies 要先声明 cookies 权限,并设置 host_permissions 主机权限,如下:
image.png

{"manifest_version": 3,"name": "chrome.cookies","description": "chrome.cookies API 基础用法","version": "1.0","action": {"default_popup": "popup.html","default_icon": "icons/icon128.png"},"host_permissions": ["<all_urls>"],"permissions": ["cookies"]
}

这里 host_permissions 设置了 “<all_urls>”,表示扩展对所有的网站都有访问权限,也可以指定某个网站。比如:

"host_permissions": ["*://*.google.com/"
],

以 千图网 网站为例,来分析 chrome.cookies 用法
首先,先编写 pupup.html 文件
image.png

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>chrome.cookies</title><script src="popup.js"></script><style>body {width: 200px;}button {width: 100px;}.cookie_container {display: flex;flex-direction: column;gap: 10px;}</style>
</head><body><p>千图网cookies操作</p><div class="cookie_container"><button class="get_qt_type">获取qt_type cookie</button></div>
</body></html>

然后,再编写需要引入的 popup.js 文件:

1、chrome.cookies.get

如果我们想获取指定网站下的指定cookie信息,可以通过 chrome.cookies.get 来实现,如下:
image.png

document.addEventListener('DOMContentLoaded', () => {// 获取指定cookieconst get_qt_type_element = document.querySelector(".get_qt_type")if (get_qt_type_element) {get_qt_type_element.addEventListener("click", function () {chrome.cookies.get({url: "https://www.58pic.com/",name: "qt_type"}, function (cookie) {console.log(cookie);})})}
})

点击“获取qt_type cookie”按钮之后,打印如下:
image.png

2、chrome.cookies.getAll

如果我们想获取指定网站下全部 cookies , 可以使用 chrome.cookies.getAll 来实现
将 pupup.html 增加 “获取全部 cookies”按钮,如下:
image.png

<button class="get_all_cookies">获取全部 cookies</button>

同时在 pupup.js 中追加的监听事件,如下:
image.png

    // 获取所有cookieconst get_all_cookies_element = document.querySelector(".get_all_cookies")if (get_all_cookies_element) {get_all_cookies_element.addEventListener("click", function () {chrome.cookies.getAll({domain: "58pic.com"}, function (cookies) {console.log(cookies);})})}

刷新扩展后,点击按钮,打印如下:
image.png
这样就拿到该网站下的所有 cookies 了。

3、chrome.cookies.set

如果我们想给指定网站设置 cookie , 可以使用 chrome.cookies.set 来实现

将 popup.html 中增加 “设置 cookie”按钮,代码如下:
image.png

<button class="set_cookie">设置 cookie</button>

然后,在 pupup.js 追加其点击事件,如下:
image.png

    // 设置指定 cookieconst set_cookie_element = document.querySelector(".set_cookie")if (set_cookie_element) {set_cookie_element.addEventListener("click", function () {chrome.cookies.set({url: "https://www.58pic.com/",name: "cookie_test_name",value: "我是被手动设置的cookie",domain: ".58pic.com",path: "/",secure: false,httpOnly: false,expirationDate: (new Date()).getTime() / 1000 + 3600})})}

点击“设置 cookie”按钮后,刷新 cookie ,可以看到cookie被设置成功了。
image.png

4、chrome.cookies.remove

如果我们想移除指定网站下的指定 cookie , 可以使用 chrome.cookies.remove 来实现

在 popup.js 中添加 “移除 cookie” 按钮,如下:
image.png

<button class="remove_cookie">移除 cookie</button>

然后,在 popup.js 中追加其点击事件:
image.png

    // 移除指定 cookieconst remove_cookie_element = document.querySelector(".remove_cookie")if (remove_cookie_element) {remove_cookie_element.addEventListener("click", function () {chrome.cookies.remove({url: "https://www.58pic.com/",name: "cookie_test_name",})})}

效果如下:
5.gif

代码地址:传送门

总结
  • 获取指定 cookie ,使用:chrome.cookies.get
  • 获取全部 cookies , 使用:chrome.cookies.getAll
  • 设置指定 cookie , 使用:chrome.cookies.set
  • 移除指定 cookie , 使用:chrome.cookies.remove

创作不易,动动您发财的小手,点赞关注一波,支持我创作更多对您有帮助的文章!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/35715.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软考系统架构师考试考点整理就看这一篇

软考系统架构师考试考点整理就看这一篇 最近软考成绩出来了不少同学与笔者沟通&#xff0c;聊到软考现在越来越难了&#xff0c;考了两三次都没过&#xff0c;也有不少新同学咨询软考考试的一些福利政策&#xff0c;投入大量的物力&#xff0c;财力&#xff0c;精力&#xff0c…

如何借助物联网实现土壤监测与保护

如何借助物联网实现土壤监测与保护 高标准农田信息化是指利用现代信息技术&#xff0c;如物联网、大数据、云计算等&#xff0c;对农田进行数字化、智能化的管理&#xff0c;以提高农田的生产效率和可持续发展能力。其中&#xff0c;土壤监测与保护是农田信息化的重要内容之一…

低代码:释放企业创新力的钥匙

近年来&#xff0c;随着信息技术的不断发展&#xff0c;企业对于快速开发应用程序的需求越来越迫切。然而&#xff0c;传统的软件开发过程常常耗时费力&#xff0c;限制了企业的创新潜力。于是&#xff0c;低代码应运而生&#xff0c;成为解决开发难题的一把利器。 低代码开发…

智能聊天AI机器人网页怎么聊?这样做很简单

智能聊天AI机器人网页怎么聊&#xff1f;随着科技的飞速发展&#xff0c;智能聊天AI机器人已经逐渐渗透到我们的日常生活中&#xff0c;为我们提供了更加便捷、高效的交流方式。在网页上&#xff0c;这些智能聊天机器人以其独特的魅力&#xff0c;为我们打开了与机器对话的新世…

Epic商店登录时一直转圈圈怎么回事?Epic登录转圈圈解决办法

很多游戏玩家都喜欢在Epic商店上面免费领取游戏&#xff0c;但是经常在登陆领取的过程中&#xff0c;遇到Epic账号登陆不上的问题&#xff0c;登陆界面一直转圈圈&#xff0c;下面分享一下具体解决办法&#xff0c;帮助大家顺利流畅登陆&#xff0c;轻松喜加一。 如果遇到Epic商…

低内阻、高性能数字音频功放芯片-NTP8938

由工采网代理的韩国NF&#xff08;耐福&#xff09;NTP8938是一款支持2X30W低内阻、高性能数字音频功放芯片&#xff1b;采用QFN40封装&#xff0c;芯片内置DSP集成了多功能数字音频信号处理功能&#xff0c;高性能&#xff0c;高保真。 芯片工作电压范围&#xff1a;5V&#x…

python实现可视化大屏(django+pyechars)

1.实现效果图 2.对数据库进行迁移 python manage.py makemigrations python manage.py migrate 3.登录页面 {% load static%} <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport"…

【回溯算法题记录】组合总和题汇总

组合总和 39. 组合总和题目描述初始思路后续分析 40. 组合总和 II题目描述思路&#xff08;参考代码随想录&#xff09; 39. 组合总和 题目&#x1f517; 题目描述 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target &#xff0c;找出 candidates 中可以使数…

3d渲染软件有哪些(2),渲染100邀请码1a12

3D渲染软件有很多&#xff0c;上次我们介绍了几个&#xff0c;这次我们接着介绍。 1、Arnold Arnold渲染器是一款基于物理算法的电影级渲染引擎&#xff0c;它具有渲染质量高、材质系统丰富、渲染速度快等特点&#xff0c;是3D设计师的极佳选择。2、Octane Render Octane Ren…

【全网最完整】Open CASCADE Technology (OCCT) 构建项目,QT可视化操作,添加自定义测试内容

前言 本文为了记录自己在实习的过程中&#xff0c;学习到的有关OCCT开源项目的搭建工作&#xff0c;旨在教会小白从0开始下载开源项目及环境搭配&#xff0c;以及如何添加自定义测试内容&#xff0c;最终结果展示如下&#xff1a; 1、项目下载 本项目共需要使用四个工具&#…

如何快速解决验证码图像问题 | 最佳图像(OCR)验证码解决工具

你是否曾经遇到过陷入一个看似无尽的 CAPTCHA 挑战中&#xff0c;努力识别扭曲的字符或数字&#xff1f;这些令人抓狂的 CAPTCHA 是为了确保你是人类而不是机器人&#xff0c;但它们也给真正的用户带来了头痛。那么&#xff0c;有没有快速解决这些 CAPTCHA 图像的方法&#xff…

2021年12月电子学会青少年软件编程 中小学生Python编程等级考试三级真题解析(判断题)

2021年12月Python编程等级考试三级真题解析 判断题&#xff08;共10题&#xff0c;每题2分&#xff0c;共20分&#xff09; 26、在Python中&#xff0c;0x100010表示十六进制数100010 答案&#xff1a;对 考点分析&#xff1a;考查进制转换&#xff0c;十六进制数1️⃣0x开头…

Flask之数据库

前言&#xff1a;本博客仅作记录学习使用&#xff0c;部分图片出自网络&#xff0c;如有侵犯您的权益&#xff0c;请联系删除 目录 一、数据库的分类 1.1、SQL 1.2、NoSQL 1.3、如何选择&#xff1f; 二、ORM魔法 三、使用Flask-SQLALchemy管理数据库 3.1、连接数据库服…

宠物领养救助管理系带万字文档java项目基于springboot+vue的宠物管理系统java课程设计java毕业设计

文章目录 宠物领养救助管理系统一、项目演示二、项目介绍三、万字项目文档四、部分功能截图五、部分代码展示六、底部获取项目源码带万字文档&#xff08;9.9&#xffe5;带走&#xff09; 宠物领养救助管理系统 一、项目演示 宠物领养救助系统 二、项目介绍 基于springbootv…

一站式BI解决方案:从数据采集到处理分析,全面满足决策支持需求

在数字化浪潮席卷全球的今天&#xff0c;数据已成为企业决策的核心驱动力。然而&#xff0c;面对海量的数据和复杂的分析需求&#xff0c;企业如何高效地收集、整理、分析和利用这些数据&#xff0c;以支持战略决策和业务优化&#xff0c;成为了一个亟待解决的问题。为了解决这…

AI大模型日报#0626:首款大模型芯片挑战英伟达、面壁智能李大海专访、大模型测试题爆火LeCun点赞

导读&#xff1a;AI大模型日报&#xff0c;爬虫LLM自动生成&#xff0c;一文览尽每日AI大模型要点资讯&#xff01;目前采用“文心一言”&#xff08;ERNIE-4.0-8K-latest&#xff09;生成了今日要点以及每条资讯的摘要。欢迎阅读&#xff01;《AI大模型日报》今日要点&#xf…

上古世纪台服怎么注册账号 上古世纪台服怎么下载游戏教程

6月27日&#xff0c;上古世纪战争台服新服公测&#xff0c;一款由虚幻4引擎打造的mmorpg游戏&#xff0c;画面还是非常精美的&#xff0c;并且游戏玩起来也比较轻松&#xff0c;自动战斗&#xff0c;自动寻路这些功能都有。游戏的新玩法主要是海战&#xff0c;驾驶舰船在海上作…

Java医院绩效考核系统源码 :3分钟带你了解(医院绩效考核系统有哪些应用场景)三级公立医院绩效考核系统源码

Java医院绩效考核系统源码 &#xff1a;3分钟带你了解&#xff08;医院绩效考核系统有哪些应用场景&#xff09;三级公立医院绩效考核系统源码 作为医院用综合绩效核算系统&#xff0c;系统需要和his系统进行对接&#xff0c;按照设定周期&#xff0c;从his系统获取医院科室和…

可持续性是 Elastic: 进步与新机遇的一年

作者&#xff1a;来自 Elastic Keith Littlejohns 我们最新的可持续发展报告&#xff08;Sustainability Report&#xff09;总结了 Elastic 又一个令人兴奋的进步年&#xff0c;我们的项目继续揭示新的机遇。过去的一年对于我们与主要利益相关者群体合作以更好地了解他们的目标…

[解决方案]使用微软拼音打中文卡顿到离谱

去这里看&#xff0c;发现有65535个文件&#xff0c;基本都是临时文件。删除后测试了一下&#xff0c;不会卡顿了但是只要打中文还是会疯狂生成tmp临时文件。 问题&#xff1a;输入法不兼容 解决方案 先把上面那个文件夹里的tmp文件全删了 直接点是&#xff0c;其他的文件会…