sharegpt扩展严格遵循最小权限原则,manifest.json仅声明storage权限及sharegpt.com相关host_permissions,不请求tabs/history等高危权限,内容脚本限于官网域名匹配,无webrequest拦截,后台使用受限service worker,本地存储数据隔离且无冗余字段。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您安装了ShareGPT浏览器扩展,但对其实际读取哪些数据、是否可能泄露隐私存在疑虑,则需要明确该插件在manifest配置中声明的权限范围及其运行时行为边界。以下是针对其权限声明与安全机制的具体分析步骤:
一、解析manifest.json中的显式权限声明
ShareGPT扩展的安全基线由其清单文件manifest.json定义,该文件强制约束其可访问的资源类型与域名范围。所有权限必须在此处明文列出,否则无法调用对应API。
1、打开扩展安装目录,定位manifest.json文件(通常位于chrome://extensions/页面启用“开发者模式”后点击“详情”可查看路径)。
2、查找"permissions"字段,确认是否仅包含["storage"]或类似最小化权限项。
3、检查"host_permissions"字段,验证其值是否严格限定为["https://sharegpt.com/", "https://api.sharegpt.com/"]等必要域名,排除通配符如"*://*/*"或"https://*/*"。
4、确认未声明"tabs"、"history"、"bookmarks"、"clipboardRead"等高风险权限,这些权限允许扩展读取用户全量浏览上下文。
二、内容脚本注入范围的精确匹配验证
内容脚本是扩展与网页交互的核心载体,其匹配规则直接决定数据接触面。ShareGPT仅应在ShareGPT官网及合法嵌入场景下激活,而非全局监听页面。
1、在manifest.json中定位"content_scripts"数组。
2、核对每个对象的"matches"属性,确保仅包含["https://sharegpt.com/*", "https://www.sharegpt.com/*"]等精确域名路径。
3、排除存在"https://*/*"、"file://*"或正则表达式匹配等宽泛规则。
4、确认无"run_at": "document_start"以外的非必要执行时机设置,防止过早劫持DOM初始化流程。
三、网络请求拦截与重写行为审计
扩展若声明"webRequest"或"webRequestBlocking"权限,即可监听、修改所有出站请求,构成严重隐私风险。ShareGPT官方版本不应具备此类能力。
1、在manifest.json中搜索"webRequest"、"webRequestBlocking"关键字。
2、若存在,进一步检查其"permissions"数组是否包含该条目。
3、使用Chrome开发者工具的Network面板,在ShareGPT页面操作时观察是否存在异常请求头(如X-Extension-ID、X-Injected-By等自定义标识)。
4、启用chrome://net-internals/#events,过滤"REQUEST_STARTED"事件,确认无未经声明域名的请求被扩展拦截。
四、本地存储数据隔离性检测
扩展使用chrome.storage API保存的数据默认按扩展ID隔离,但若采用unmanaged方式或共享localStorage,可能与其他扩展或网站产生数据交叉。
1、在Chrome地址栏输入chrome://extensions/,找到ShareGPT扩展ID(一串随机字符)。
2、打开DevTools控制台,执行chrome.storage.local.get(null, console.log),确认返回数据仅含用户导出偏好、主题设置等必要字段。
3、检查是否存在键名如"clipboard_history"、"full_page_html"等超出功能所需的冗余存储项。
4、确认未调用window.localStorage或indexedDB等Web API进行跨域持久化存储。
五、后台服务工作器权限收敛审查
Manifest V3强制使用service_worker替代background pages,其生命周期受浏览器严格管控。ShareGPT后台逻辑应仅处理消息转发与定时同步,不驻留长期连接。
1、在manifest.json中确认"background"字段为{"service_worker": "background.js"}格式。
2、检查background.js源码,确认无setInterval、long-polling fetch或WebSocket常连逻辑。
3、验证chrome.alarms或chrome.runtime.onMessage监听器是否仅响应来自content-script的有限消息类型(如"export_conversation")。
4、确认未调用chrome.cookies、chrome.downloads等需额外申请的敏感API。











