V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
hi20151215x
V2EX  ›  服务器

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

  •  
  •   hi20151215x · 2023-09-29 12:26:19 +08:00 · 1289 次点击
    这是一个创建于 421 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

        cmd := exec.Command("firefox")
    
        err := cmd.Run()
        
    

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

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

    先行感谢:)

    9 条回复    2023-09-30 06:09:33 +08:00
    dayeye2006199
        1
    dayeye2006199  
       2023-09-29 13:25:54 +08:00
    你这是要实现什么应用?用户传什么东西给你,然后你拿到这个输入之后要干啥来着?
    运行用户的代码?
    whinter
        2
    whinter  
       2023-09-29 17:47:52 +08:00
    沙箱
    julyclyde
        3
    julyclyde  
       2023-09-29 20:09:00 +08:00
    不要允许开放式的输入
    hi20151215x
        4
    hi20151215x  
    OP
       2023-09-29 22:22:28 +08:00
    @julyclyde 谢谢
    hi20151215x
        5
    hi20151215x  
    OP
       2023-09-29 22:23:21 +08:00
    @dayeye2006199 比如 通过 web 操作 iptables 或者 crontab 之类的
    whileFalse
        6
    whileFalse  
       2023-09-30 00:47:36 +08:00
    @hi20151215x 这玩意很容易把自己干死。建议别整这稀的溜的
    Maboroshii
        7
    Maboroshii  
       2023-09-30 00:50:19 +08:00 via Android
    给指令整个白名单吧
    bugfan
        8
    bugfan  
       2023-09-30 02:25:18 +08:00 via iPhone
    找一些实现了操作 iptables cron 的库,然后编译到自己的后端去,或者魔改一下。
    hi20151215x
        9
    hi20151215x  
    OP
       2023-09-30 06:09:33 +08:00
    @whileFalse ? 啊 为什么??
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1232 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 18:13 · PVG 02:13 · LAX 10:13 · JFK 13:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.