请问网站的后端(例如 go)如何实现与服务器应用的交互?

2023-09-29 12:26:19 +08:00
 hi20151215x

目前是直接在后端调用"os/exec"提供的方法,比如

    cmd := exec.Command("firefox")

    err := cmd.Run()
    

但总觉得直接执行用户传递过来的命令,风险很大。 能想到的解决办法是,将要执行的命令,保存为固定格式的 sh 文件,仅将个别参数传递进去,以此减少风险。

不知道这个想法对不对,想听听各位的意见。

先行感谢:)

1252 次点击
所在节点    服务器
9 条回复
dayeye2006199
2023-09-29 13:25:54 +08:00
你这是要实现什么应用?用户传什么东西给你,然后你拿到这个输入之后要干啥来着?
运行用户的代码?
whinter
2023-09-29 17:47:52 +08:00
沙箱
julyclyde
2023-09-29 20:09:00 +08:00
不要允许开放式的输入
hi20151215x
2023-09-29 22:22:28 +08:00
@julyclyde 谢谢
hi20151215x
2023-09-29 22:23:21 +08:00
@dayeye2006199 比如 通过 web 操作 iptables 或者 crontab 之类的
whileFalse
2023-09-30 00:47:36 +08:00
@hi20151215x 这玩意很容易把自己干死。建议别整这稀的溜的
Maboroshii
2023-09-30 00:50:19 +08:00
给指令整个白名单吧
bugfan
2023-09-30 02:25:18 +08:00
找一些实现了操作 iptables cron 的库,然后编译到自己的后端去,或者魔改一下。
hi20151215x
2023-09-30 06:09:33 +08:00
@whileFalse ? 啊 为什么??

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/978128

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX