当前位置 : 主页 > 操作系统 > centos >

CentOS 7.9通过CGI实现在html页面中执行shell命令

来源:互联网 收集:自由互联 发布时间:2022-06-20
一、 CGI 概念: CGI : Common Gateway Interface ,公共网关接口,是 Web 服务器运行时外部程序的规范,按 CGI 编写的程序可以扩展服务器功能。 CGI 应用程序能与浏览器进行交互,还可通过数

一、CGI概念:

CGICommon Gateway Interface,公共网关接口,是Web服务器运行时外部程序的规范,按CGI编写的程序可以扩展服务器功能。CGI应用程序能与浏览器进行交互,还可通过数据API与数据库服务器等外部数据源进行通信,从数据库服务器中获取数据,格式化为HTML文档后,发送给浏览器,也可以将从浏览器获得的数据存入数据库。几乎所有服务器都支持CGI,可用任何语言编写CGI,包括流行的CC ++JavaVBDelphi等。CGI分为标准CGI和间接CGI两种。标准CGI使用命令行参数或环境变量表示服务器的详细请求,服务器与浏览器通信采用标准输入输出方式。间接CGI又称缓冲CGI,在CGI程序和CGI接口之间插入一个缓冲程序,缓冲程序与CGI接口间用标准输入输出进行通信。

 

、CGI代码实现:

1、 安装httpd

# yum -y install httpd

2、 确认httpd.conf配置文件中存在如下代码:

# vim /etc/httpd/conf/httpd.conf<IfModule alias_module>
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
</IfModule>

<Directory "/var/www/cgi-bin">
AllowOverride None
Options None
Require all granted
</Directory>

3、 启动httpd:

# systemctl start httpd

4、 编写index.cgi

# cd /var/www/cgi-bin
# vim index.cgi#!/bin/bash
#index.cgi

echo "Content-Type:text/html;charset=utf-8"
echo

cat << AAA
<html>
<head>
<title>CGI Test</title>
</head>
<h3>
AAA

ifconfig ens33 | grep-w 'inet' | awk '{print $2}'

cat << AAA
</h3>
</html>
AAA

# chmod +x index.cgi

5、 安装net-tools

# yum -y install net-tools

6、shell 命令执行效果:

# ifconfig ens33 | grep -w 'inet' | awk '{print $2}'

CentOS 7.9通过CGI实现在html页面中执行shell命令_shell

7、浏览器中输入192.168.0.122/cgi-bin/index.cgi

CentOS 7.9通过CGI实现在html页面中执行shell命令_html_02

三、CGI环境变量:

1、 编写info.cgi

# cd /var/www/cgi-bin
# vim info.cgi#!/bin/bash
#info.cgi

echo "Content-Type:text/html;charset=utf-8"
echo

cat << AAA
<html>
<head>
<title>CGI Info</title>
</head>
<body>
<h3>
<pre>
AAA

echo SERVER_SOFTWARE = $SERVER_SOFTWARE
echo SERVER_NAME = $SERVER_NAME
echo GATEWAY_INTERFACE = $GATEWAY_INTERFACE
echo SERVER_PROTOCOL = $SERVER_PROTOCOL
echo SERVER_PORT = $SERVER_PORT
echo REQUEST_METHOD = $REQUEST_METHOD
echo SCRIPT_NAME = $SCRIPT_NAME
echo REMOTE_ADDR = $REMOTE_ADDR

cat << AAA
</pre>
</h3>
</body>
</html>
AAA

# chmod +x info.cgi

说明:

$SERVER_SOFTWARE:服务器软件及版本

$SERVER_NAME:服务器IP

$GATEWAY_INTERFACE:CGI版本

$SERVER_PROTOCOL:通信使用协议

$SERVER_PORT:服务器端口号

$REQUEST_METHOD:请求方法(GET/POST/PUT/DELETE等)

$SCRIPT_NAME:当前运行的脚本名称(包含路径)

$REMOTE_ADDR:客户端IP​

2、浏览器中输入192.168.0.122/cgi-bin/info.cgi

CentOS 7.9通过CGI实现在html页面中执行shell命令_cgi_03

上一篇:Linux基础网络设置
下一篇:没有了
网友评论