我发现自己有时会不小心cat
ing 一个二进制文件,或者SELECT
从mysql
CLI 中读取一些二进制字段,最终会在屏幕上显示如下内容:
▒=▒▒▒▒f4▒Kҫ24T?)
或更糟(Putty
在 Windows 上使用):
问题是,除了使我的终端可能无法使用(改变颜色等),迫使我关闭并重新打开它之外,是否有将二进制数据输出到终端的风险?就像错误地执行命令一样,或者我应该注意的其他任何事情?
我下载的大多数可执行文件都会打开一个安全提示,例如:
不过,我不止一次感到惊讶,我第一次下载的可执行文件会立即打开安装程序,绕过安全提示。
这怎么可能?我是否错误地禁用了安全检查?是否有一些 Windows 认为 100% 信任且不需要通过安全提示的签名可执行文件?
编辑
我刚刚尝试了最后两个软件安装程序,它们没有在新的 Windows 10 虚拟机上给我提示:
同样,我没有得到提示。
所以看起来提示的出现取决于应用程序试图访问的内容?
不过,我很惊讶它可以在没有提示的情况下执行。
我的猜测是 Windows 10 中的应用程序在默认情况下被沙盒化,以防止它们篡改系统。当他们可以在沙箱中生活时,不会出现任何提示。当他们需要在沙箱之外进行任何访问时(例如整个文件系统),Windows 会提示用户进行授权。
这可以解释为什么Signal(一个简单的信使应用程序)不提示(它应该能够在沙盒中工作)而Everything在某些时候确实提示(它需要访问整个文件系统)。
如果可能的话,我很乐意对这个猜测进行一些确认,并提供更多信息。