如何使用 CGI 和 BASH 检索 HTTP 请求标头



我使用CGI脚本调用使用Apache 2.4.41的Java程序。 脚本如下:

#!usr/bin/bash
java 
-Dcgi.content_type=$CONTENT_TYPE 
-Dcgi.content_length=$CONTENT_LENGTH 
-Dcgi.request_method=$REQUEST_METHOD 
-Dcgi.query_string=$QUERY_STRING 
-Dcgi.server_name=$SERVER_NAME 
-Dcgi.server_port=$SERVER_PORT 
-Dcgi.script_name=$SCRIPT_NAME 
-Dcgi.path_info=$PATH_INFO 
-Dcgi.http_cookie=$HTTP_COOKIE 
-classpath /home/be 
cgi.UserEndpointCGI

客户端向端点发送自定义标头,以告知服务器请求哪个函数。标头包含键值:

Y-Request: function_name

问题是我不知道如何检索Y-Request: function_name标题字段,并且无法在网上找到答案。

从你的例子来看,这是你如何使用任意标头的

-Dcgi.http_cookie=$HTTP_COOKIE 

标头Y-Request必须在变量HTTP_Y_REQUEST中可用。

你CGI脚本有很大的安全性,有人可以注入arbritrary shell命令,你必须引用所有变量的用法。

-Dcgi.http_cookie="$HTTP_COOKIE" 

最新更新