首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

浏览器插件开发-manifest文件解读「建议收藏」

扩展在他们后台脚本监视这些事件,然后用指定指令进行响应 关于后台脚本状态 首次下载后或者更新后被加载 后台脚本下载后会处于休眠状态,直到它侦听某个事件被触发, 侦听到事件后,会使用指定指令响应...(怎么相应自定义) 以下情况会需要调用到后台脚本 扩展首次下载或者版本更新 后台脚本中正在监听事件,并且这事件被触发了 content_script 或者其他扩展调用了 sendMessage...当前扩展其他部分,例如弹窗调用了 runtime.getBackgroundPage 后台脚本定义选项 { ......content_script 一个特殊环境运行,可以称之为隔离环境,在这里可以访问所注入页面的DOM,但是不能访问里边任何 javascript 变量和函数,反之,页面js 也不能访问...允许用户调用扩展临时访问当前活动选项卡, background 后台权限,可以用来增加Chrome 运行时间,即开机即运行(虽然是不可见) bookmarks 书签操作权限 browsingData

2.2K20

绕过 CSP 从而产生 UXSS 漏洞

以下是扩展后台页面声明消息侦听器: ?...它将删除任何正则表达式 [A-Za-z0-9()_ -] 不匹配字符,遗憾是包括了如 " 字符,这些字符可以 HTML 字符拼接用于属性截断。...可以通过将 .flv 添加到我们 url palyload 结尾来绕过检查。...-- 下图显示了单击扩展名图标,我们 payload 被触发: ? 现在可以扩展程序上下文中执行任意 JavaScript,并且可以滥用扩展程序访问任何扩展程序 API。...示例,要包含资源是 popup.html 页面,该页面通常仅在用户单击扩展程序图标显示。 通过 iframing 此页面以及之前 payload,我们有一个无需用户交互漏洞利用: ?

2.7K20
您找到你想要的搜索结果了吗?
是的
没有找到

带你快速走进Chrome扩展开发大门

---- Hi~ 大家好,我是小鑫同学,资深 IT 从业者,InfoQ 签约作者,擅长前端开发并在这一领域有多年经验,致力于分享我技术方面的见解和心得 进入正题 Chrome 扩展程序通过可以... Chrome DevTools 添加功能。 Chrome扩展文件? 序号 类型 描述 1 manifest 扩展程序清单是唯一必须具有特定文件名必需文件: manifest.json 。...它还必须位于扩展程序根目录。清单记录重要元数据,定义资源,声明权限,并标识哪些文件在后台和页面上运行 2 content scripts 内容脚本在网页上下文中执行 Javascript。...内容脚本只能使用 Chrome API 一个子集,但可以通过扩展服务工作者交换消息来间接访问其余部分 3 service worker 扩展服务工作者处理和监听浏览器事件。...扩展程序(chrome://extensions/) 打开开发者模式 加载已解压扩展程序(包含清单文件文件夹) PS:插件开发过程中会多次修改,修改后需要在浏览器扩展程序重新刷新后生效 实现专注阅读模式

77410

前端开发必备之Chrome开发者工具(上篇)

添加、启用和停用 CSS 类 点击 .cls 按钮可以查看当前选定元素关联所有 CSS 类。 从这里,您可以执行以下操作: 启用或停用当前元素关联元素添加新类 ?...快速样式规则添加背景色或颜色 Styles 窗格提供了一个用于样式规则快速添加 text-shadow、box-shadow、color 和 background-color 声明快捷方式 样式规则右下角有一个由三个点组成图标...声明值左侧有一个带颜色小正方形。 正方形颜色声明值匹配。 点击小正方形可以打开 Color Picker ? 您可以通过多种方式 Color Picker 交互: ? 取色器。...XHR断点 当XHR请求URL包含指定字符串,如果要中断,使用XHR断点 设置XHR断点: 点击 Sources 选项卡。 展开 XHR Breakpoints 窗格。 点击添加断点。...输入你想要打断字符串。当此字符串出现在XHR请求URL任何位置,DevTools会暂停。 按Enter确认。 ?

8.2K111

基于Chrome插件开发工具链

URL权限匹配表达式 插件可以访问哪些页面是要通过匹配表达式指定,这个表达式有点像通配符,但是又不是通配符。 它匹配表达式分为 协议、主机和路径三部分。...关于通信 由于不同执行环境(后台、popup、centent script和网页原生脚本环境)不同沙箱,他们之间要进行通信可以使用chrome消息管道API。...然后通过页面添加一个script节点方式可以很容易地实现脚本注入( 当然调试起来麻烦一点点,这也是那个火车票订票插件和视屏网站广告屏蔽插件干的事呦)。...调试 chrome调试已经非常强大了,扩展页面上打开开发者模式,可以载入正在开发插件文件夹。 后台调试可以扩张页面点击插件下面的地址打开调试面板。...content script可以在网页上打开网页脚本调试面板,然后脚本列表那里有个tab是Content scripts 打包和自动更新 chrome浏览器自带了打包工具,扩展页面上就有。

64520

【前端工具】Chrome 扩展程序开发发布 -- 手把手教你开发扩展程序

我们可以这样理解它,页面加载完毕之后,我们扩展程序会这个页面注入一个或者额多个脚本,这个脚本可以获得浏览器所访问 web 页面的详细信息。...chrome扩展程序将后台网页分为两种类型: 持续运行后台网页 事件页面 是否持久存在是事件页面后台网页之间根本区别。...以我上面的 URLHelper 为例子,在这个扩展,我使用是持续运行后台网页,当浏览器页面刷新第一次注入 Content Script ,会获取到当前页面 url ,然后发送消息并带上 url...扩展程序消息传递 消息传递存在必要性是因为内容脚本在网页而不是扩展程序环境运行,所以它们通常需要某种方式扩展程序其余部分通信。... chrome 浏览器访问 chrome://extensions(或者单击多功能框最右边按钮:打开 Chrome 浏览器菜单,并选择更多工具 (L) 菜单下扩展程序 (E),进入相同页面)。

1.4K30

【前端工具】Chrome 扩展程序开发发布 -- 手把手教你开发扩展程序

我们可以这样理解它,页面加载完毕之后,我们扩展程序会这个页面注入一个或者额多个脚本,这个脚本可以获得浏览器所访问 web 页面的详细信息。...chrome扩展程序将后台网页分为两种类型: 持续运行后台网页 事件页面 是否持久存在是事件页面后台网页之间根本区别。...以我上面的 URLHelper 为例子,在这个扩展,我使用是持续运行后台网页,当浏览器页面刷新第一次注入 Content Script ,会获取到当前页面 url ,然后发送消息并带上 url...扩展程序消息传递 消息传递存在必要性是因为内容脚本在网页而不是扩展程序环境运行,所以它们通常需要某种方式扩展程序其余部分通信。... chrome 浏览器访问 chrome://extensions(或者单击多功能框最右边按钮:打开 Chrome 浏览器菜单,并选择更多工具 (L) 菜单下扩展程序 (E),进入相同页面)。

1.8K30

进阶|Chrome还不够神,但你写扩展程序可以很神

你可以 chrome 应用商店下载到它: 开发它原因是因为,我们业务开发,开发过程经常需要面对超长 URL,带有 N 多个参数,它可能长这样: 不是开玩笑,真实情况可能比这个还长。...微格式数据 我们可以这样理解它,页面加载完毕之后,我们扩展程序会这个页面注入一个或者额多个脚本,这个脚本可以获得浏览器所访问 web 页面的详细信息。...它不需要与其他界面或者脚本进行交互和信息传递,扩展帮你做就是自动注入这个脚本而需要你每次手动注入。...chrome扩展程序将后台网页分为两种类型: 1.持续运行后台网页 2.事件页面 是否持久存在是事件页面后台网页之间根本区别。...扩展程序消息传递 消息传递存在必要性是因为内容脚本在网页而不是扩展程序环境运行,所以它们通常需要某种方式扩展程序其余部分通信。

95720

浏览器架构温故知新

为了安全起见,Chrome 沙箱模式下为每个选项卡创建了一个单独渲染进程。 GPU 进程最初是为了3D CSS 效果,后来扩展到绘制网页和 Chrome UI 界面。...字节流触发下载管理器,而 HTML 则发出准备渲染信号。 浏览器进程检查当前 URL 是否现有呈现进程根域匹配。如果不同,则启动新渲染进程。...4.3.3 后台脚本 Chrome 扩展后台脚本具有最长生命周期,并且浏览器打开连续运行。它拥有广泛权限,允许访问大多数 Chrome 扩展 API 和跨源请求,而不受 CORS 限制。...当用户在网页之外进行互动,它会迅速关闭。通常用于临时交互,其权限级别类似于背景,但具有较短生命周期。 4.3.5 注入脚本 开发者 Chrome 插件开发过程创造了“注入脚本”这个术语。...为了满足 Web 页面添加一个按钮来触发插件常见需求,大家采用了插入脚本

9610

Chrome Extension

插件页面注入脚本一种形式(虽然名为script,其实还可以包括css), 借助content-scripts我们可以实现通过配置方式轻松指定页面注入JS和CSS 最常见比如:广告屏蔽、页面...}); 扩展调试 chrome菜单里打开扩展程序(打开开发者模式) ? 调试通普通页面一样 如何优雅调试 右键Chrome工具栏小图标会弹出一个窗口,选择审查弹出内容即可调试。...然后找到extension目录 打包 当您为扩展程序打包扩展程序将获得唯一密钥对,扩展程序标识符基于公钥散列,私有密钥用来为每一个版本扩展程序签名,必须严格保护,不能由公众访问。...注意千万不要将您私有密钥包含在扩展程序! 创建包 进入以下URL,打开扩展程序管理页面:chrome://extensions 确保右上角开发者模式复选框已选中....单击打包扩展程序按钮,出现一个对话框。 扩展程序根目录字段,指定扩展程序所在文件夹路径,例如,C:\myext。(忽略其他字段,您第一次为一个扩展程序打包不需要指定私有密钥文件。)

2.8K30

如何在十分钟内创建一个Chrome 插件

有些有一个浏览器动作,通过地址栏旁边图标可见,以便快速访问其功能。其他一些可能会在后台默默运行,在所有网页上或仅在特定网页上,具体取决于它们设计。...对于我们教程,我们将专注于使用内容脚本扩展类型。该脚本将允许我们特定页面的DOM进行交互和操作——我们情况下,即ChatGPT界面。...接下来几节,我们将更深入地探讨每个文件,并概述其扩展特定作用。 步骤2:创建 Manifest 文件 Manifest 文件是一个 JSON 文件,它浏览器提供了有关你扩展基本信息。...content_scripts:此键静态地指定每次打开 URL 模式(由 matches 键指定)匹配页面要使用 JavaScript 或 CSS 文件。...打开 Chrome 浏览器,然后地址栏中导航到 chrome://extensions/。 页面右上角打开“开发者模式”开关。 点击现在可见“加载未打包扩展”按钮。

49151

写html页面没意思,来挑战chrome插件开发

开发者可以利用这些技术浏览器添加功能、修改现有功能或者网页进行交互。...清单文件是插件配置文件,包含插件名称、版本、描述、权限以及其他相关信息。背景脚本用于处理插件后台逻辑,而内容脚本则用于在网页执行JavaScript代码。...谷歌浏览器插件可以实现各种功能,例如添加工具栏按钮、修改网页内容、捕获用户输入、后台服务器进行通信等。开发者可以通过谷歌浏览器插件API来访问浏览器各种功能和数据,实现各种定制化需求。...通过这些方法,您可以从内容脚本扩展程序发送一次性 JSON 可序列化消息,或者从扩展程序向内容脚本发送。如需处理响应,请使用返回 promise。...}) 然后就可以content.js或popup.js获取到数据 // 这里参数是,获取不到数据默认参数 chrome.storage.sync.get({color: 'yellow'},

27811

最新Tampermonkey 中文文档解析(附基础案例和高级案例)

如果用户单击此按钮,则将自动允许所有未来请求。 用户还可以通过脚本设置”选项卡用户域白名单添加“*”来白名单所有请求。...,tm试图通过查找@match标记来检测脚本是否是google chrome/chromium知识编写,但并不是每个脚本都使用它。...这就是为什么tm支持这个标签来禁用运行为firefox/greasemonkey编写脚本所需所有优化。要保持此标记可扩展,可以添加可由脚本处理浏览器名称。...如果给定了多个散列(用逗号或分号分隔),则TM将使用当前支持最后一个散列。如果外部资源内容所选哈希不匹配,则资源不会传递到用户脚本。所有散列都需要以十六进制或base64格式编码。...loadinbackground具有active相反含义,并被添加以实现Greasemonkey 3.x兼容性。如果未指定“活动”或“加载后台”,则选项卡将不会聚焦。

5K11

火狐扩展开发入门实践

答:要访问国外网站找官网资料(受限于学习环境),同时Firefox Google Chrome、Opera 和 W3C 草案社区组织 所支持 扩展(Extensions) API 很大程度上兼容...A:扩展为浏览器添加特性功能它通过熟悉 web 技术——HTML,CSS 还有 JavaScript 来创建,利用网页上 JavaScript 使用同一批 API,但扩展也可以访问扩展自己专用.../updates.json" } }, //(5) URL 匹配特定模式网页才进行加载脚本,比如放访问weiyigeek.top域名时候执行main.js操作; // 匹配和排除匹配...(background scripts)职责,由于扩展常常需要独立于任何浏览器窗口或特定网页来维持一种长期状态或者执行长期操作, // 可以添加多个后台脚本或者你也可以先引入一个后台页面,再在后台页面引入脚本优势是...3.browser action files: 工具栏添加按钮。 4.page action files: 添加到浏览器地址栏按钮,用户通过点击这个按钮扩展进行交互。

2.4K10

火狐扩展开发入门实践

答:要找官网资料(受限于学习环境),同时Firefox Google Chrome、Opera 和 W3C 草案社区组织 所支持 扩展(Extensions) API 很大程度上兼容。...A:扩展为浏览器添加特性功能它通过熟悉 web 技术——HTML,CSS 还有 JavaScript 来创建,利用网页上 JavaScript 使用同一批 API,但扩展也可以访问扩展自己专用..." } }, //(5) URL 匹配特定模式网页才进行加载脚本,比如放访问weiyigeek.top域名时候执行main.js操作; // 匹配和排除匹配 "content_scripts...(background scripts)职责,由于扩展常常需要独立于任何浏览器窗口或特定网页来维持一种长期状态或者执行长期操作, // 可以添加多个后台脚本或者你也可以先引入一个后台页面,再在后台页面引入脚本优势是...3.browser action files: 工具栏添加按钮。 4.page action files: 添加到浏览器地址栏按钮,用户通过点击这个按钮扩展进行交互。

2.8K30

Chrome插件开发教程

本文将详细介绍如何开发一款Chrome插件,包括插件介绍、开发配置调试。不包含插件发布、审核等内容。...2.选中界面右上角开发者模式3.点击左上角加载已解压扩展程序,并选中刚才插件文件夹插件已经成功载入。可以点击扩展程序按钮,鼠标移动到插件右侧固定按钮,固定到标签栏里。...注册 background.js它是一种后台脚本,浏览器会在插件安装或重新加载扫描它并初始化(事件监听等)。它是整个插件重要组成部分。必须在manifest里配置。...记录浏览历史插件提供了内容脚本 Content Scripts(CS)概念,当用户打开并访问某个网站,浏览器将CS注入网站文档里执行。因此,我们需CS脚本里编写记录逻辑。...(), }); chrome.storage.sync.set({ history });});复制代码上述代码获取访问页面的 标题,url,访问时间存储到 storage里。

1.3K10

半小时内从无到有开发并调试一款Chrome扩展Chrome插件谷歌浏览器插件)

,这一次我们尝试半小时内开发一款Chrome扩展,因为之前我们做了一个微信小程序在线面试题题库项目,所以正好利用这个题库将面试题平移到Chrome扩展上面。     ...Chrome插件通常是.crx后缀文件,通过谷歌网上应用商店下载或者开发者模式可以直接拖入到浏览器进行安装     首先建立一个项目文件夹,mkdir chrome_demo    ...,利用jquery往后台发送一个异步请求,用来获取一道随机面试题,接口返回数据后,前端再通过回调方法将面试题渲染到扩展页面,目前为止,我们项目结构是这样     随后我们将扩展导入到...chrome浏览器浏览器地址栏输入:chrome://extensions/,然后点击加载已解压扩展程序     代码里我用console.log输出了一些信息,那么怎么调试扩展呢?...无论是修改html还是修改js文件都是实时生效,无须重启浏览器,或者重新加载扩展,这一点无疑非常方便,那么后台怎么接收前端扩展发过来参数呢?

51120

Spring认证中国教育管理中心-Spring Data Redis框架教程三

消息传递/发布订阅 Spring Data 为 Redis 提供了专门消息传递集成,功能和命名上 Spring Framework JMS 集成非常相似;事实上,熟悉 Spring JMS...,可以通过直接命名或使用模式匹配来订阅一个或多个频道。...后一种方法非常有用,因为它不仅允许使用一个命令创建多个订阅,而且还可以侦听订阅时尚未创建频道(只要它们匹配模式)。...因此,无论应用程序跟踪多少个侦听器或通道,运行时成本在其整个生命周期内都将保持不变。此外,容器允许运行时配置更改,因此可以应用程序运行时添加或删除侦听器,而无需重新启动。....…; 通过模板API订阅 如上所述,您可以直接使用ReactiveRedisTemplate订阅频道/模式。这种方法提供了一种直接但有限解决方案,因为您无法初始订阅之后添加订阅。

1.1K20

小技巧 | Get 到一个 Web 自动化方案,绝了!

background 用于定义一个后台页面,相当于一个常驻页面,生命周期和浏览器一致 content_scripts 用于注入 JS 脚本,它不会和页面脚本产生冲突 3. ...实战一下 假设我们现在需要完成一个插件,首次登录或登录失效,自动完成登录操作 3-1  创建项目 我们创建一个文件夹,项目结构目录如下 3-2  项目配置 我们 manifest.json 配置文件...这里设置所有的页面都会执行 content.js 脚本,当匹配到第二个页面,执行 content_vx.js 脚本 需要指出是,run_at 设置为 document_end,代表当页面加载完成后...        "", // 匹配URL         "tabs", // 标签         "notifications" // 通知     ] } 3-3  编写注入脚本...icon 图标及 popup 页面后,我们可以进入到 Chrome 插件管理界面 开启「 开发者模式 」,然后点击左侧「 加载已解压扩展程序 」加载上面创建项目文件夹 开启扩展插件,每次打开目标网站或退出登录

1K00
领券