Skip to content

Security: HanlynnKe/reqpatch

Security

SECURITY.md

Security and trust boundary

ReqPatch 0.4.1 是面向测试环境和多泳道隔离的全网站请求修改工具,不为输入值、目标协议或目标网站提供策略兜底。启用规则即表示操作者接受它们可能作用于浏览器访问的任意站点。

运行边界

  1. 任一时刻仅当前 Profile 生效;切换 Profile 时,旧 Profile 的 DNR 规则应被当前 Profile 的完整规则集替换。
  2. 顶部全局开关关闭时,动态规则与 session rules 都应清除。每类修改的 Section 总开关和每条 Rule 的开关分别控制该范围是否参与编译,不应改写行内配置。
  3. 没有 Filter 时,规则不受 URL、域名或协议限制,统一覆盖 Chrome DNR 支持的请求类型;产品不维护 HTTP、HTTPS、WS、WSS 四套配置。
  4. Filter 是当前 Profile 的可选限制,可按 Include/Exclude、URL pattern、URL regex、resource type、HTTP method 或 tab 缩小范围。Redirect 行自身的 Match URL pattern 是其 URL 匹配条件,因此 Profile URL/regex Include 不会覆盖它;URL Exclude 与 resource/method/tab Filter 仍参与 Redirect 编译。Tab Filter 需要 session rules;其他规则使用动态规则。
  5. 支持 Request headers、Response headers、Cookies、URL redirects 和 Content-Security-Policy。Cookies 通过 DNR 修改请求的 Cookie Header,不读取或写入 Chrome Cookie 数据库;CSP 通过响应头修改实现。
  6. Comment、Duplicate 和 Convert 是本地配置操作;Search 只影响界面呈现。Undo 是当前编辑流程的辅助能力,不应当作持久备份或安全恢复机制。
  7. Profile、Filters、规则、Comment 和 Header 值持久保存在 chrome.storage.local,直至操作者删除配置、清除扩展数据或卸载扩展。值为明文,不加密、不脱敏,也不会在失焦或重启后自动清除;能够访问该 Chrome Profile 或导出文件的人可能看到这些值。

权限与外联

Manifest 只声明:

  • storage
  • declarativeNetRequest
  • Host Permission:<all_urls>

扩展不申请 Cookies、History、Tabs、WebRequest、Scripting、Debugger 或调试反馈权限。将编辑器展开到新标签页只创建扩展自身页面,不读取标签页内容,因此不需要 Tabs 权限。

扩展页面 CSP 保持 connect-src 'none',运行时代码不得使用 fetch、XHR、WebSocket、Beacon、远程脚本或危险 DOM 注入。该限制针对扩展自身的通信;DNR 按配置修改现有浏览器网络流量是插件的核心功能。

状态与导入边界

  • 存储读入、消息保存与导入数据必须经过结构校验。
  • 导入的 Profile、Rule 和 Filter ID 必须重新生成,避免覆盖现有对象或制造重复 ID。
  • ModHeader v2 的基础 headers / respHeaders Profile JSON 可用于交换;Cookie、redirect、CSP、Filter、Comment 等超出基础格式的数据,不应假定能被其他插件完整往返保留。
  • DNR 更新必须串行化;更新失败后,后续保存仍应能够继续执行,避免旧状态覆盖新状态。
  • 对同时包含 tab Filter 的 Profile,启用、切换与停用都必须同步替换 dynamic rules 和 session rules。

回归检查范围

发布前至少应检查:

  • Profile A/B 切换后仅当前 Profile 生效
  • 全局、Section 和单行开关
  • Request / Response 的 Set 与 Remove
  • Cookie Header、URL redirect 与 CSP response Header
  • 无 Filter 时 HTTP、HTTPS、WS、WSS 的统一作用行为
  • URL pattern/regex、resource type、method 与 tab 的 Include/Exclude Filter
  • Comment、Duplicate、Convert、Search、Undo 与展开页面
  • 明文值跨扩展页面关闭和浏览器重启后的本地持久化
  • ModHeader v2 基础 Header Profile 的导入与导出,以及重复 ID 隔离
  • DNR 更新失败后继续处理后续保存
  • Manifest 权限、扩展页 CSP、无外联代码、无内容脚本和无远程代码

以上是发布前应覆盖的检查项,不代表仅凭文档即可确认每项已完成验证。

报告漏洞时请提供最小复现、受影响版本和预期行为,不要包含真实生产凭据。

There aren't any published security advisories