Bash fastCGI 在没有给出参数时显示很多信息

Posted

技术标签:

【中文标题】Bash fastCGI 在没有给出参数时显示很多信息【英文标题】:Bash fastCGI displays a lot of information when no args are given 【发布时间】:2018-10-09 23:04:44 【问题描述】:

重现创建 bash 脚本以通过 nginx 从 FastCGI 运行的步骤,在 URL 栏中不提供任何变量。

Nginx 位置:

location ~ (\.cgi|\.py|\.sh|\.pl|\.lua)$ 
    gzip off;
    autoindex on;
    fastcgi_pass unix:/var/run/fcgiwrap.socket;
    include /etc/nginx/fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 

Bash 脚本的顶部:

# Save the old internal field separator.
OIFS="$IFS"
# Set the field separator to & and parse the QUERY_STRING at the ampersand.   
IFS="$IFS&"   
set $QUERY_STRING
Args="$*"  
IFS="$OIFS"

预期输出:无

实际输出: 请注意,输出已被清理

BASH=/bin/bash BASHOPTS="" BASH_ALIASES="" BASH_ARGC="" BASH_ARGV="" BASH_CMDS="" BASH_LINENO="" BASH_SOURCE="" BASH_VERSINFO="" BASH_VERSION=""` CONTENT_LENGTH="" CONTENT_TYPE="" DAEMON_OPTS="" DIRSTACK="" DOCUMENT_ROOT="" DOCUMENT_URI="" EUID="" FCGI_ROLE="" GATEWAY_INTERFACE="" 组="" 主页="" 主机名="" 主机类型="" HTTPS="" HTTP_ACCEPT="" HTTP_ACCEPT_ENCODING="" HTTP_ACCEPT_LANGUAGE="" HTTP_CONNECTION="" HTTP_COOKIE=CID="" HTTP_HOST="" HTTP_UPGRADE_INSECURE_REQUESTS="" HTTP_USER_AGENT="" IFS="" INVOCATION_ID="" JOURNAL_STREAM="" 朗="" 日志名称="" MACHTYPE="" OIFS="" OPTERR="" OPTIND="" OSTYPE="" 路径="" PIPESTATUS="" PPID="" PS4="" 密码="" QUERY_STRING="" REDIRECT_STATUS="" REMOTE_ADDR="" REMOTE_PORT="" REQUEST_METHOD="" REQUEST_SCHEME="" REQUEST_URI="" SCRIPT_FILENAME="" SCRIPT_NAME="" SERVER_ADDR="" SERVER_NAME="" SERVER_PORT="" SERVER_PROTOCOL="" SERVER_SOFTWARE="" 壳="" SHELLOPTS="" SHLVL="" 术语="" UID="" 用户="" _=""

【问题讨论】:

【参考方案1】:

我不确定set $QUERY_STRING 行的意图是什么,但这就是导致输出的原因。如果在没有任何有效选项的情况下调用 bash 中的 set builtin,它将输出环境。

【讨论】:

由于我只从 cgi 传递了一个参数,因此我能够删除该集合并直接调用 $query_string 代替 $args[*]

以上是关于Bash fastCGI 在没有给出参数时显示很多信息的主要内容,如果未能解决你的问题,请参考以下文章

用户登录时显示 -bash-4.2$ 问题

点击按钮时显示 UIPickerView

微信支付时显示缺少参数:appId,明明自己已经传过了

为啥jsp页面中传入JavaBean对象里面的中文参数在调试时显示成员变量是乱码?

如何默认隐藏键盘并仅在单击 EditText 时显示 [重复]

spring security 在使用 AJAX 登录时显示 403 错误