如何防止复制额外的不可见文本

如何防止复制额外的不可见文本

我问过类似的问题如何确保从网站到终端的复制命令是安全的?

场景很简单,您想从网站上复制一些内容,但最终得到的却是其他东西。

现场演示复制文本

使用系统;
使用 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 演示进行测试,我们必须将其删除:

  1. https://jsfiddle.net/v2ypLt57/embedded/result/
  2. 鼠标右键
  3. 此框架
  4. 仅显示此帧

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 ...

漏洞

不知道为什么,但结果会丢失缩进,可能是设计使然,因为这是为了阅读长篇文本(如书籍),而不是缩进的编程语言。也许你可以给扩展作者发邮件。

相关内容