目前是直接在后端调用"os/exec"提供的方法,比如
cmd := exec.Command("firefox") err := cmd.Run()
但总觉得直接执行用户传递过来的命令,风险很大。 能想到的解决办法是,将要执行的命令,保存为固定格式的 sh 文件,仅将个别参数传递进去,以此减少风险。
不知道这个想法对不对,想听听各位的意见。
先行感谢:)
1 dayeye2006199 2023-09-29 13:25:54 +08:00 你这是要实现什么应用?用户传什么东西给你,然后你拿到这个输入之后要干啥来着? 运行用户的代码? |
2 whinter 2023-09-29 17:47:52 +08:00 沙箱 |
3 julyclyde 2023-09-29 20:09:00 +08:00 不要允许开放式的输入 |
4 hi20151215x OP @julyclyde 谢谢 |
5 hi20151215x OP @dayeye2006199 比如 通过 web 操作 iptables 或者 crontab 之类的 |
6 whileFalse 2023-09-30 00:47:36 +08:00 @hi20151215x 这玩意很容易把自己干死。建议别整这稀的溜的 |
![]() | 7 Maboroshii 2023-09-30 00:50:19 +08:00 via Android 给指令整个白名单吧 |
8 bugfan 2023-09-30 02:25:18 +08:00 via iPhone 找一些实现了操作 iptables cron 的库,然后编译到自己的后端去,或者魔改一下。 |
9 hi20151215x OP @whileFalse ? 啊 为什么?? |