微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 content-security-policy 从 javascript 脚本上传文件

如何解决使用 content-security-policy 从 javascript 脚本上传文件

大家早上好/晚上好。

上下文

几天前,我开始开发一个 chrome 扩展。其想法是使用预定义的信息(例如图像的 url 和产品描述)促进表单的完成。

我的第一个想法是首先下载图像并使用一些脚本上传到正确的输入字段。但是,正如您所想的那样,出于安全原因,浏览器脚本无法在您的计算机中查找并选择它想要的内容

我做了一些研究并发现:

在 JavaScript 中,type=file 的输入是只读的。 (https://www.sitepoint.com/community/t/add-value-to-input-type-file/3324)

我不想说任何事情都是不可能的,但浏览器认为这是一种安全风险,并明确否认此类行为。 (https://www.tek-tips.com/viewthread.cfm?qid=857522)

这是不可能的(有充分的理由),实际上被认为是一个安全问题...... (Filling in input type=file)

但是,在搜索之后,我发现了一个 chrome 扩展程序,它做得非常好:Upload image from URL。根据我使用它并阅读其描述后的理解,扩展名:

  • 使用 .querySelectorAll 查找所有 input[accept="image/"]* 或类似内容。如果至少存在一个,则继续。
  • 然后,下载图像并存储/缓存内容(可能是base64?)浏览器的本地存储(chrome.storage.local);
  • 然后,填写(缺少合适的词)输入字段

接下来的问题是它是如何完成的。最简单的事情是,我联系了开发人员,但遗憾的是他/他不想提供帮助。

经过其他一些搜索后,我发现 Puppeteer 可以帮助执行 that。但是执行需要一个 nodejs 进程,而我只在浏览器上。一些hacky,non-official technique 存在,但它似乎不是要走的路。 在第二次查看扩展代码(包含捆绑文件,因此不可读)后,我看到 manifest.json 包含以下行: "content_security_policy": "script-src 'self ''unsafe-eval'; object-src 'self'".

所以我想知道,是否可以在我开发的扩展中包含这些行? 如果是这样,如何模仿上传文件的行为?

或者至少,有人可以将我重定向到一些有用的资源吗?逆向工程师 从 URL 上传图片 ?

在此先感谢您的帮助,并感谢您阅读这篇长文。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。