相关疑难解决方法(0)

“ASCII 文本,加粗”文件格式的目的

下载 Bash 的源代码后,我浏览了doc目录并遇到了以下文件:

这些控制字符不会显示在 Git Web 界面提供的表示中,但可以下载实际文件并在 Vim 等文本编辑器中检查。

fileon 上运行命令会bash.0打印以下输出:

bash.0: ASCII text, with overstriking
Run Code Online (Sandbox Code Playgroud)

我以前从未遇到过这种文件格式,我想知道它的用途是什么以及如何使用。在 Web 上搜索短语“ASCII 文本,加粗”并不是很有启发性。

man documentation text-formatting

50
推荐指数
3
解决办法
4118
查看次数

如何避免终端中的转义序列攻击?

阅读CVE-2009-4487 的细节(这是关于日志文件中转义序列的危险)我有点惊讶。

引用CVE-2009-4487

nginx 0.7.64 将数据写入日志文件而不清理不可打印的字符,这可能允许远程攻击者通过包含终端模拟器转义序列的 HTTP 请求修改窗口的标题,或可能执行任意命令或覆盖文件。

显然,这实际上并不是 nginx 中的安全漏洞,而是终端模拟器中的安全漏洞。

当然,也许cat将日志文件写入终端只是偶然发生的,但是将日志文件写入grep是很常见的。less也许清理转义序列,但谁知道什么 shell 命令不会改变转义序列......

我倾向于同意Varnish 的回应

终端响应转义的智慧通常定期受到质疑,但仍然没有一个主要的终端仿真程序认为适合丢弃这些序列,这可能是在与不再使用的 1970 年代技术兼容的误导尝试中。[..] 从安全的角度来看,让终端仿真程序停止做愚蠢的事情,从而解决这个和其他安全问题,而不是责怪任何和所有写入日志文件的程序,这将更有效率和所有人。

因此我的问题:

我如何保护我的 xterm,以便不再可能通过转义序列执行命令或覆盖文件?

X 的哪些终端模拟器可以抵御这种攻击?

security terminal-emulator xterm special-characters escape-characters

30
推荐指数
2
解决办法
7866
查看次数