javascript - 网页中的 shell 是真 shell 还是其他?

 mobiledu2502880253 发布于 2022-11-24 07:57

我看到一些网站比如 Docker 官网的 Try it,里面的 Terminal 是真的把命令发给服务器执行把结果返回还是怎么做的?

PS:

我尝试用 PHP 写了一个,前端把获取到的命令,提交, PHP 用 exec() 之类的函数执行,把打印出来的返回给前端。但这样虽然能执行一些简单的命令,但可以说完全达不到人家的那种效果。首先是不安全,其次是无法运行像 iPython 之类的交互环境。

5 个回答
  • wssh解决你想要的问题【nodejs这方面做的很好

    2022-11-24 08:02 回答
  • https://github.com/jcubic/jquery.terminal 这个可以是真的
    假的就好办了。

    2022-11-24 08:02 回答
  • Docker输入ls -l后会提示你:

    This is an emulator, not a shell. Try following the instructions.
    
    2022-11-24 08:02 回答
  • 我看到过一个类似的jslinux,应该是js模拟出来的shell(不是很确定)

    http://bellard.org/jslinux/

    但是VPS里面也有类似的网页版的Terminal,那个似乎是真的shell

    2022-11-24 08:02 回答
    1. 首先,是发给服务器而不是 js 执行,这个很清楚。
    2. 个人猜测,是一个模拟器的概率不大,因为要重新实现几乎所有的 docker 命令。比较大的可能是先过滤程序名(例如只允许 help、docker 之类的命令),然后调用 exec 函数。
    3. 安全起见,可以在执行程序之前切换为受限用户。
    2022-11-24 08:02 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有