一行代码创建一个可执行命令的 Web 服务器

Crq
Crq
管理员
1794
文章
0
粉丝
Linux教程评论12字数 364阅读1分12秒阅读模式
摘要因为有一个始终执行的循环使用 while true,让 nc 命令持续在端口 8080 监听浏览器请求,每次刷新时,都会执行作为参数传递给 web.sh 的脚本,其结果连同一些 H...

如果你想让系统更加安全,那可能要花费很多时间,相反,如果你想让系统不安全,那就是分分钟的事情,本文分享一个不安全的方式在 Linux 上快速建立一个 Web 服务,它可以将 bash 指令的执行结果返回给前端,提醒一下,千万别在生产环境使用。

首先编写这样一行代码,保存为 web.sh

#!/bin/bash
while true; do 
    echo -e "HTTP/1.1 200 OK\n\n$($1)" | nc -l -k -p 8080 -q 1; 
done

然后添加可执行权限:

chmod u+x web.sh

执行这个脚本,给他一个命令参数,比如 ps aux:

./web.sh "ps aux"

打开浏览器,输入网址 http://127.0.0.1:8080,就会看到下图所示的结果:

一行代码创建一个可执行命令的 Web 服务器

每次刷新浏览器都会打印 ps aux 命令的最新结果!

为什么可以这样?

#!/bin/bash
while true; do 
    echo -e "HTTP/1.1 200 OK\n\n$($1)" | nc -l -k -p 8080 -q 1; 
done

因为有一个始终执行的循环使用 while true,让 nc 命令持续在端口 8080 监听浏览器请求,每次刷新时,都会执行作为参数传递给 web.sh 的脚本,其结果连同一些 HTTP 标头会传递给 nc,后者又会发送给我们的浏览器。

一条简单的命令就可以起到远程监控服务器进程的效果,是不是很方便?不过这样并不安全,自己玩玩可以,不推荐生产环境使用。

weinxin
我的微信
微信号已复制
我的微信
这是我的微信扫一扫
 
Crq
  • 本文由 Crq 发表于2025年3月2日 12:31:28
  • 转载请注明:https://www.cncrq.com/13271.html
如何解决缓存失效问题 Linux教程

如何解决缓存失效问题

在如今大数据的时代下,高并发高可用是所有软件开发都追求的目标,为了实现这一目标,缓存的使用是每一个高并发系统都会涉及到的,使用缓存可以保障系统的运行效率,提高系统的健壮性。
怎么使用树莓派和 iPad Pro 备份图片 Linux教程

怎么使用树莓派和 iPad Pro 备份图片

我在很长的时间内一直在寻找一个旅行中备份图片的理想方法,把 SD 卡放进你的相机包会让你暴露在太多的风险之中:SD 卡可能丢失或者被盗,数据可能损坏或者在传输过程中失败。
听说awk语言也可以编写脚本 Linux教程

听说awk语言也可以编写脚本

从 awk 系列开始,我们都是在命令行或者脚本文件里写一些简短的 awk 命令和程序。然而 awk 和 shell 一样也是一个解释型语言。通过从开始到现在的一系列的学习,你现在能...
Google疯了,竟然这样! Linux教程

Google疯了,竟然这样!

一个小问题:你每天做什么事?当然了,好多事情,但是我可以指出一件事,你几乎每天都会用 Google 搜索,我说的对吗?现在,如果你是一位 Linux 用户,这里有另外一个问题:如果...
匿名

发表评论

匿名网友
:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:
确定

拖动滑块以完成验证