瀏覽器擴展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.pswp.cn/diannao/35715.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/35715.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/35715.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

軟考系統架構師考試考點整理就看這一篇

軟考系統架構師考試考點整理就看這一篇 最近軟考成績出來了不少同學與筆者溝通&#xff0c;聊到軟考現在越來越難了&#xff0c;考了兩三次都沒過&#xff0c;也有不少新同學咨詢軟考考試的一些福利政策&#xff0c;投入大量的物力&#xff0c;財力&#xff0c;精力&#xff0c…

如何借助物聯網實現土壤監測與保護

如何借助物聯網實現土壤監測與保護 高標準農田信息化是指利用現代信息技術&#xff0c;如物聯網、大數據、云計算等&#xff0c;對農田進行數字化、智能化的管理&#xff0c;以提高農田的生產效率和可持續發展能力。其中&#xff0c;土壤監測與保護是農田信息化的重要內容之一…

Vue3中根據select得選項值,改變當前元素同級下的子元素得disabled屬性值

在 Vue 3 中,你通常不會直接通過類名(或任何其他 DOM 選擇器)來獲取 DOM 元素,因為 Vue 鼓勵你使用數據驅動視圖的方式來更新和操作元素。然而,如果你確實需要訪問 DOM 元素(這通常是不推薦的,除非有特別的原因),你可以使用 Vue 3 的 ref 或者 refs(在模板中使用 ref…

Python 入門 —— 面向對象編程

Python 入門 —— 面向對象編程 面向對象編程是一種編程范式&#xff0c;通過將對象作為程序的基本單元&#xff0c;每個對象之間可以相互傳遞信息&#xff0c;并通過各自的方法對信息進行處理&#xff0c;從而達到程序處理的目的。 而面向過程編程則是將程序視為一系列順序執…

低代碼:釋放企業創新力的鑰匙

近年來&#xff0c;隨著信息技術的不斷發展&#xff0c;企業對于快速開發應用程序的需求越來越迫切。然而&#xff0c;傳統的軟件開發過程常常耗時費力&#xff0c;限制了企業的創新潛力。于是&#xff0c;低代碼應運而生&#xff0c;成為解決開發難題的一把利器。 低代碼開發…

你了解RabbitMQ、RocketMQ和Kafka嗎?

是的&#xff0c;我了解 RabbitMQ、RocketMQ 和 Kafka。以下是對這三種消息隊列系統的詳細介紹&#xff1a; RabbitMQ 概念 RabbitMQ 是一個由 Pivotal 開發的開源消息代理&#xff0c;基于 AMQP&#xff08;Advanced Message Queuing Protocol&#xff09;協議。它支持多種…

智能聊天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"…

ffmpeg將mp4轉換為swf

文章目錄 ffmpeg安裝、配置java運行報錯 Cannot run program "ffmpeg" ffmpeg命令mp4轉為swf示例 ### ffmpeg -i input.mkv -b:v 600 -c:v libx264 -vf scale1920:1080 -crf 10 -ar 48000 -r 24 output.swfmkv轉為swf示例 其他文檔命令參數簡介 需要將mp4轉換為swf&a…

【回溯算法題記錄】組合總和題匯總

組合總和 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…

[Gstreamer] gstbasesink 里的 jitter

gstbasesink 里有一個值是 jitter &#xff0c;直譯為抖動。這個值表示當前到達 gstbasesink chain 函數(push mode) 的 GstBuffer 的系統事件 與 這個 buffer 被期望到達的系統時間的差值。 如果 jitter 是整數&#xff0c;則表示 GstBuffer 到晚了&#xff0c;當前 GstBuffer…

HJI與HJB

問題描述 設連續系統狀態方程和性能指標 X ˙ f ( t , X , U ) X ( t 0 ) X 0 J ? [ X ( t f ) , t f ] ∫ t 0 t f F ( X , U , t ) d t \begin{aligned} \dot{X} & f(t, X, U) \quad X\left(t_{0}\right)X_{0} \\ J & \phi\left[X\left(t_{f}\right), t_{f}\r…

【全網最完整】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、連接數據庫服…

移動互聯網應用程序(APP)信息安全等級保護測評標準解讀

隨著移動互聯網的迅猛發展&#xff0c;移動應用(App)已成為個人信息處理與交互的主要渠道&#xff0c;其安全性直接關系到國家安全、社會穩定以及用戶個人隱私權益。為加強移動App的信息安全管理&#xff0c;國家標準化管理委員會正式發布了GB/T 42582-2023《信息安全技術 移動…