Cur*_*ma_ 3 shell security terminal-emulator terminal
在我遇到的许多 Linux 发行版中,将文本粘贴到 shell 时会包含退格字符。为什么不阻止粘贴这些字符——或者这个特性是否提供了一些有用的功能?
换句话说,Linux shell 是否“知道”它是粘贴的字符串——还是手动输入的?
这种行为如何处理?
shell 只是在终端中运行的应用程序。对于粘贴,只有模拟器相关,但仍然有“真正的”终端(提示:Linux 控制台不是其中之一)。
不考虑各种控制台实现,因为粘贴文本是以更有限的方式完成的,在 X 中运行的终端是问题的重点。终端仿真器只是看到一系列事件。键入的键或粘贴的文本在终端模拟器上看起来是一样的。
仅考虑终端模拟器(并在它们之间选择/粘贴),退格键不是问题,因为选择/粘贴与终端窗口上显示的内容一起使用。也就是说,如果用户在终端窗口上选择文本,则只有可打印的文本(可能带有制表符作为特殊情况)。没有任何退格字符(除非有人的终端实现有问题),因为退格会告诉终端将光标向左移动。终端没有可打印的驻留可供选择。还有数百个其他终端的控制器可能被使用,但退格键是简单的和广泛使用。
Backspace 是一些实施不佳的应用程序的问题,例如浏览器(它确实应该提供可打印文本的显示......),显然会存储一些脚本编写者决定应该存储在屏幕上的任何内容。
所以......与其问为什么终端模拟器仍然允许 BS,人们可能会问为什么 GUI 浏览器允许这种行为。