如何通过Chrome扩展绕过“表单不安全”页面实现自动登录?
解决方案:绕过Chrome“表单不安全”页面限制
Chrome的“表单不安全”警告页面(属于chrome://interstitials系列内置页面)默认阻止内容脚本访问,因为这类页面不在常规扩展权限覆盖范围内。以下是几种可行的解决方法:
1. 后台脚本注入代码自动点击“仍然发送”按钮
通过扩展后台监听标签页更新,识别到不安全表单警告页面后,直接注入脚本触发按钮点击。
步骤:
- 在扩展
manifest.json中添加必要权限:
{ "manifest_version": 3, "permissions": ["tabs", "scripting"], "host_permissions": ["<all_urls>"] }
- 在后台脚本中添加监听逻辑:
chrome.tabs.onUpdated.addListener((tabId, changeInfo, tab) => { // 匹配Chrome不安全表单警告页面的URL if (tab.url.startsWith("chrome://interstitials/insecure-form")) { chrome.scripting.executeScript({ target: { tabId: tabId }, func: () => { // 定位“仍然发送”按钮并点击(按钮文本可能因Chrome版本略有不同) const confirmBtn = document.querySelector("#proceed-button"); if (confirmBtn) confirmBtn.click(); } }); } });
注意:不同Chrome版本的警告页面DOM结构可能有变化,需要根据实际情况调整选择器。
2. 用命令行参数禁用警告(开发环境专用)
如果是开发自用,可以通过Chrome启动参数直接跳过这类安全检查:
- 关闭所有Chrome实例后,用以下命令启动:
# Windows示例 chrome.exe --allow-running-insecure-content --unsafely-treat-insecure-origin-as-secure="http://你的本地站点地址" # macOS示例 /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --allow-running-insecure-content --unsafely-treat-insecure-origin-as-secure="http://你的本地站点地址" # Linux示例 google-chrome --allow-running-insecure-content --unsafely-treat-insecure-origin-as-secure="http://你的本地站点地址"
--unsafely-treat-insecure-origin-as-secure会把指定的HTTP站点当作安全源处理,彻底避免触发警告;--allow-running-insecure-content则允许安全页面加载不安全内容,但对纯HTTP站点的表单警告更有效的是前者。
3. 升级本地站点到HTTPS(生产环境推荐)
从根源解决问题,给本地服务配置HTTPS证书:
- 使用
mkcert生成信任的自签名证书(无需手动添加信任):- 安装mkcert后,生成本地CA:
mkcert -install - 为本地站点生成证书:
mkcert 你的本地域名 localhost 127.0.0.1 - 配置你的Web服务使用生成的
.pem和.key文件启用HTTPS。
这样Chrome会识别为安全站点,不会触发任何警告。
- 安装mkcert后,生成本地CA:
内容的提问来源于stack exchange,提问作者Karthik Vishwanath
相关产品推荐
相关产品推荐

