gpt4 book ai didi

node.js - 如何安全地从 Electron 打开这个外部应用程序?

转载 作者:行者123 更新时间:2023-12-03 12:26:20 24 4
gpt4 key购买 nike

我正在使用 Node 的 childProcess 制作一个可以在第三方照片编辑器中打开提供的文件的 Electron 应用程序的原型(prototype)。接口(interface):

const process = childProcess.spawn(
'open',
['-a', 'Polarr Photo Editor', filename],
{shell: false}
);

我有点担心传入未经 sanitizer 的 filename 的安全性。作为参数。对于上下文,以下是应用程序的工作方式:
  • 它从我们的服务器请求 JSON 有效负载,其中列出了 S3
  • 中的一组 Assets
  • 这些 Assets 在本地下载
  • 然后用户可以选择在他或她的编辑器中打开哪一个
  • 修改后可以重新上传给我们

  • 我担心第 1 阶段的 MITM 攻击可能意味着用户下载了一个恶意命名的文件,这个文件名在作为参数传递给 spawn 时会做坏事。 ,例如 myCoolFile && doEvilThing ;.jpg .

    我做了一些测试,还没有发现任何明显的漏洞,但我担心我可能会遗漏一些东西。

    因此我想知道:
  • 可以将参数发送到spawn劫持命令,产生邪恶的副作用 - 在恶意用户手中做任何意外或不受欢迎的事情?
  • 如果是这样,我该怎么办?从 Node 进程打开第三方应用程序是否有更好的选择?
  • 我应该阅读 Electron 应用程序中的安全性方面的一般良好做法吗?
  • 最佳答案

    我不认为这是一个安全问题。有两个原因

    第一个是文件名只是发送给第三方应用程序的参数。所以该可执行文件应该验证参数以检查它是否是一个文件。如果不是,则超出您的范围,您可能必须要求他们修复该问题,或者验证它是否为文件名。

    第二个原因是这发生在客户端,因此用户将负责传递文件名,即使它是手动完成的。您无法控制他可能在自己的系统上执行的操作,这没关系。即使你让它变得不可能。

    您的用户可以随时执行 open -a Polarr Photo Editor anything_he_want如果他想破解它,就在他的终端上。

    关于node.js - 如何安全地从 Electron 打开这个外部应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52606415/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com