小编con*_*fin的帖子

如何使用 openssl 从 HTTP GET 请求中获取结果?

我需要使用 openssl 在 shell 脚本中执行一些 HTTP GET 请求。我现在用来执行此操作的行如下所示。这是解析以下格式的 XML 响应的内容。

<Result>success</Result>

<Result>failure</Result>

echo -e "GET /test HTTP/1.1\r\nHost:$(hostname)\r\n\r\n" | openssl 2>&1 s_client -quiet -connect server-url:443 | grep -o -P --color '(?<=Result\>).*(?=\</Result)'
Run Code Online (Sandbox Code Playgroud)

这有效并相应地返回字符串“成功”或“失败”。我面临的问题是该openssl命令在执行 GET 请求后不会终止,而是坐在那里等待更多输入。我相信这是由于隐式的-ign_eof,它阻止了由-quiet选项引起的自动终止。我已经尝试使用该-no_ign_eof选项,但这会导致openssl命令在 GET 请求收到响应之前终止,因此如果我使用它,我将无法获取响应的内容。

如何修改此命令,以便我可以通过 stdin 传递 GET 请求(因为我想将其放入循环中是必需的),但openssl在每次请求后都会终止该命令?

scripting bash openssl shell-scripting

9
推荐指数
1
解决办法
1万
查看次数

我的无头 Ubuntu 服务器上的“无人”用户是否应该拥有 shell 访问权限?

我在一些论坛等上阅读了关于此的相互矛盾的内容。当我输入以下行时:

grep nobody /etc/passwd
Run Code Online (Sandbox Code Playgroud)

我得到以下输出

nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
Run Code Online (Sandbox Code Playgroud)

应该没有人有 shell 访问权限吗?你能不能让你的答案合格。

谢谢

security linux bash users

5
推荐指数
1
解决办法
1221
查看次数

标签 统计

bash ×2

linux ×1

openssl ×1

scripting ×1

security ×1

shell-scripting ×1

users ×1