我问过类似的问题如何确保从网站到终端的复制命令是安全的?。
场景很简单,您想从网站上复制一些内容,但最终得到的却是其他东西。
使用系统; 使用 System.Collections.Generic; 使用System.Text; 命名空间 ConsoleApplication1 { 类程序 { 静态 void Main(字符串[] 参数) { -- 很多很多行代码 -- 许多代码行 Console.WriteLine("你好,世界!"); 控制台.ReadLine(); } } }
乍一看一切都很好,用户理解每一行代码,没有什么能让他感到惊讶,但是当他将其复制/粘贴到他最喜欢的位置时,IDE/text editor
他得到的结果是:
使用系统; 使用 System.Collections.Generic; 使用System.Text; 命名空间 ConsoleApplication1 { 类程序 { 静态 void Main(字符串[] 参数) { -- 很多很多行代码 任何代码,例如开始删除用户数据 -- 许多代码行 Console.WriteLine("你好,世界!"); 控制台.ReadLine(); } } }
如您所见,还有额外的有效载荷。很容易忽略它。这同样适用于命令/bash 脚本/示例代码/git 位置存储库。
我知道这样的答案:
- 始终使用可信赖的来源
- 手动重新输入
- 务必检查所复制的内容
重点是what you see is not what you get
。最好的解决方案应该是某种 Firefox 扩展/系统剪贴板实用程序,它可以警告/删除不可见的文本。
甚至可以自动实现这一点吗?
答案1
尝试使用名为空白显示器 + 轻松阅读(比摩尔定律)
要测试 BYM,
安装扩展。
然后,由于 jsfiddle 框架妨碍了我们,如果您想使用 jsfiddle 演示进行测试,我们必须将其删除:
- https://jsfiddle.net/v2ypLt57/embedded/result/
- 鼠标右键
- 此框架
- 仅显示此帧
Result ...
现在顶部应该不再有 jsfiddle 框架。
到达这里后,您可以测试:
全部文本
按下键盘快捷键:ctrl- alt-z
它会询问你:
易读
未选择任何文本
您想选择所有文本吗?
好的
结果:新标签页打开,确实发现了any code ...
一些文字
您还可以让 BYM 对特定的代码段起作用。
例如您从中选择:
-- many, many lines of code
到:
-- many, lines of code
按下键盘快捷键:ctrl- alt-z
结果:
-- many, many lines of code
any code for example start deleting user data
-- many, lines of code
正如你所看到的,它揭示了通常隐藏的代码any code for ...
漏洞
不知道为什么,但结果会丢失缩进,可能是设计使然,因为这是为了阅读长篇文本(如书籍),而不是缩进的编程语言。也许你可以给扩展作者发邮件。