内网Chrome浏览器绕过file控件fakepath安全限制方案咨询
在Chrome中获取文件真实路径(内网环境)
核心前提说明
Chrome的安全机制和IE完全独立,你之前修改可信站点的Internet选项对Chrome无效。出于用户隐私保护,Chrome默认严格禁止网页JS直接获取本地文件的真实路径,但在无安全要求的内网环境下,可以通过以下两种方式实现需求:
方法1:修改Chrome启动参数(快速生效)
这是最简单的临时方案,需要用户启动Chrome时添加权限豁免参数:
- 关闭Chrome的所有进程(包括后台运行的)
- 右键Chrome快捷方式,打开「属性」窗口
- 在「目标」输入框的末尾,添加以下参数(注意参数前要加空格):
示例修改后目标内容:--allow-file-access-from-files --disable-web-security"C:\Program Files\Google\Chrome\Application\chrome.exe" --allow-file-access-from-files --disable-web-security - 启动Chrome后,修改你的代码以获取真实路径:
document.querySelector('input[type="file"]').addEventListener('change', function(e) { const selectedFile = e.target.files[0]; // 在禁用安全限制的Chrome环境中,file.path会返回完整本地路径 document.querySelector('p').textContent = selectedFile.path || e.target.value; });
方法2:开发Chrome本地扩展(长期稳定)
如果不想每次启动都修改参数,可以开发一个极简的Chrome扩展,扩展拥有更高的本地文件访问权限:
- 创建一个新文件夹,在其中新建
manifest.json文件:
{ "manifest_version": 3, "name": "内网文件路径工具", "version": "1.0", "permissions": ["activeTab"], "content_scripts": [ { "matches": ["*://你的内网网页域名/*", "http://localhost/*"], "js": ["content.js"] } ] }
- 同文件夹下新建
content.js文件:
document.querySelector('input[type="file"]').addEventListener('change', function(e) { const file = e.target.files[0]; // 扩展环境下可直接访问真实路径 document.querySelector('p').textContent = file.path; });
- 打开Chrome的「扩展程序」页面,开启「开发者模式」,点击「加载已解压的扩展程序」,选择刚才创建的文件夹即可生效。
重要提醒
- 以上方法仅适用于无安全要求的内网环境,严禁在公网场景使用,会导致用户本地文件系统暴露风险
- Chrome版本更新后,启动参数可能需要重新设置,扩展可能需要重新加载验证
内容的提问来源于stack exchange,提问作者Hamehandes
相关产品推荐
相关产品推荐

