`
jzy996492849
  • 浏览: 128189 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

剪切板是一个安全问题 - 在 Linux 中你可以用 xclip 和 cron 修复它

 
阅读更多
摘要: 在你的操作系统上复制/粘贴的能力是必不可少的。无论你写的是代码还是剧本,这两个功能是在计算机上处理文本的核心。当你复制文本时,它会进入内存驻留的剪贴板。除非安装了可以容纳多个条目的剪贴板管理器,否则剪贴板默认情况下只会处理一个复制事件,当你复制其他东西的时候,它之前的条目才会消失。

在你的操作系统上复制/粘贴的能力是必不可少的。无论你写的是代码还是剧本,这两个功能是在计算机上处理文本的核心。当你复制文本时,它会进入内存驻留的剪贴板。除非安装了可以容纳多个条目的剪贴板管理器,否则剪贴板默认情况下只会处理一个复制事件,当你复制其他东西的时候,它之前的条目才会消失。在标准 Linux 设置中,剪贴板内容存储在控制它的程序的内存中(通常是 Xorg)。

剪贴板应该有所限制,因为任何程序都可以读取其内容,如果放任它,它保存的东西就会一直呆在那里。此外,现代浏览器允许恶意网站以多种方式从剪贴板读取(和写入)。

虽然不是默认设置,但浏览器可以设置为禁止访问剪贴板。虽然也有用于浏览器和操作系统管理剪贴板的附加组件,但是,在此链条的源头解决问题更容易、更可靠,并使系统范围内的剪贴板安全。有很多理由使用一个剪贴板,但没有足够的理由让内容在那里保留一两分钟以上。

密码管理器最近变得很受欢迎,如果你使用过的话,你已经了解了它们如何将密码复制到剪贴板,以便你可以将其粘贴到浏览器中,并登录到你的帐户。接下来会发生什么?你的密码会保留在剪贴板上,直到另一个复制事件或重新启动。

即使你使用单独的浏览器来处理银行等事务,复制密码时,通过剪贴板会将其带回其他浏览器,并将其暴露在基于 web 的剪贴板收集技术中。

我的解决方案是在后台进行处理,每分钟自动清除剪贴板的内容。它使用 xclip 这个命令行工具、一个小脚本和 cron。cron 的一分钟间隔给你足够的时间来复制密码,然后它会清空剪贴板。此动作会每分钟执行一次,保证复制无忧。

我们需要使用 xclip 工具清除终端中的剪贴板。在基于 apt 的发行版中,输入:

sudo apt-get install xclip
我们在终端中测试一下程序。首先从某处复制一些文字,复制到其他地方,并输入这两条命令:

touch blank
xclip -selection clipboard blank
接着再次尝试复制文本 - 它应该就会消失了。现在把这个命令放在脚本中。创建一个脚本(用你的文本编辑器代替 leafpad):

leafpad nukeclipboard.sh
并在新文件中输入下面的内容:

#!/bin/sh
touch blank && xclip -selection clipboard blank
保存并关闭文件,接着加上可执行权限:

chmod +x nukeclipboard.sh
现在让 cron 任务每分钟运行一次。首先要小心,不同的发行版有不同的 cron 选项。以下设置适用于 Ubuntu(基于)的发行版,并且在你的发行版中过程可能不同,因此请阅读手册。

要设置 cron 任务,请在终端输入:

crontab -e
在最后被注释掉的行后,输入下面的行(将 /home/user/ 替换为你的脚本位置):

* * * * * export DISPLAY=:0 && /home/user/nukeclipboard.sh
现在按下 ctrl-o 保存(使用你的 cron 任务编辑器的保存快捷键),然后点击回车保存你的 crontab。最后,按下 ctrl-x 退出程序。从现在起,你的剪贴板的使用寿命为一分钟。

关于上面的 cron 条目的解释: cron 有环境变量的限制,当它失败时,你可能要花一整天试着一百种方法来解决它。在我找到了一个建议设置 DISPLAY 的快速修复 后,就解决了。感谢 Mike Q 的贡献。

现在,可能会发生当你要粘贴复制的东西时,正好剪贴板被清空,从而无法粘贴,但它只是安全的一个小的代价。 如果这是一个问题,您可以配置 cron 以任何适合您的间隔运行任务(比如 2 分钟)。 Ubuntu 的说明在此页。

分享到:
评论

相关推荐

    xclip.exe 用于更方便的剪切复制粘贴操作

    `xclip.exe`虽然在Linux环境下通常为"xclip",但这里提及的".exe"可能意味着这是一个针对Windows用户的版本,使其能够在命令行环境中使用类似Linux的剪贴板功能。 **xclip工具简介:** xclip是一个开源的命令行工具...

    Windows系统xclip复制到剪切板工具

    复制文件到剪切板的好工具,体积小,无病毒。一句话就是很好。 描述: 将命令行工具的输出重定向到 Windows 剪贴板,或从剪贴板获取输入。 这个文本输出可以被粘贴到其他程序中。

    xclip:xclip 已移至 GitHub-开源

    它使得用户可以在终端环境中方便地复制、剪切和粘贴文本,极大地提升了命令行用户的效率。在Linux世界里,xclip作为一个轻量级的解决方案,弥补了图形界面与命令行之间在剪贴板操作上的差距。 xclip的源代码现在...

    linux-在终端中不使用鼠标复制和粘贴文本

    在Linux环境中,终端是开发者和系统管理员常用的工具,但许多人习惯于依赖鼠标进行复制和粘贴操作。然而,掌握在终端中不使用鼠标进行这些基本操作的技巧,能极大提高工作效率。以下是一些关于如何在Linux终端中实现...

    vim-xclip:简单的vim插件,可将您当前的选择复制到剪贴板中

    我再也不会使用这个插件,我发现了一个更好的解决方案,安装vim-gnome ,并添加以下行您.vimrc " Copy/Paste vmap <C> "+y nmap <C> "+p 现在,您可以使用Control+c copy和Control+b paste 。 vim-xclip 简单的vim...

    node.js实现复制文本到剪切板的功能

    在文中,虽然主要讨论了在Windows平台下使用clip命令复制文本到剪切板,但不同的操作系统可能有不同的命令行工具来实现相同的功能,例如在Linux下通常使用xclip或xsel。因此在编写跨平台应用程序时,需要对不同系统...

    linux-基于当前窗口和选定文本执行操作的Shell脚本

    要创建这样一个脚本,首先你需要了解如何在Shell中获取剪贴板内容。在大多数情况下,可以使用`xclip`或`xsel`这样的工具。例如,`xclip -out`或`xsel -p`命令可以读取剪贴板中的文本。如果目标是处理终端模拟器中的...

    linux脚本shell快捷键调用google translate翻译粘贴板内容

    在这个场景中,我们可以创建一个shell脚本来调用Google Translate服务,以便快速翻译剪贴板中的文本。这个功能特别适用于那些频繁需要处理多语言内容的用户,它可以极大地提高工作效率。 首先,我们需要了解如何在...

    linux-spot一个很小的文件搜索工具bash

    3. **快捷方式**:将`spot` 脚本的路径添加到环境变量 `$PATH` 中,或者创建一个别名,如 `alias s=./path/to/spot`,这样就可以在任何目录下直接使用 `s` 命令。 4. **自定义配置**:根据个人需求修改`spot` 脚本...

    Windows下最好用的粘贴复制工具ClipX

    所有复制的的项都储存在一个清单上,可以通过程序在系统托盘上的图标,随时访问,你可以在任何时候,随时使用多次操作之前的复制内容,而不是像传统意义上的,只能复制出 上一次操作的内容。ClipX可以通过系统托盘上...

    img-clipboard:跨平台Node.js实用程序,可将图像复制到剪贴板

    img-剪贴板一个跨平台的Node.js实用程序,用于将图像复制到剪贴板。安装npm install --save img-clipboard 用法您可以使用copyImg函数复制图像Buffer或文件路径String 。 const { copyImg } = require ( 'img-...

    email-clients邮件客户端1

    电子邮件客户端在Linux中的重要性 ---------------------------------------------------------- 在Linux操作系统中,对于IT专业人士而言,尤其是那些参与Linux内核开发的人员,电子邮件客户端扮演着至关重要的角色...

    Ruby-ClipboardRuby访问WindowsLinuxmacOSJava和Cygwin中剪贴板

    Cygwin是一个在Windows上的类Unix环境,它允许运行许多原本不支持Windows的命令和程序。在Cygwin中,`Clipboard`库可能会依赖于Windows API或者模拟Linux的行为。确保`clipboard` gem已安装,然后按照Windows的用法...

    rdesktop源代码,linux下的远程桌面客户端

    总的来说,rdesktop是一个值得深入研究的开源项目,它不仅为Linux用户提供了访问Windows远程桌面的能力,同时也为开发者提供了一个研究RDP协议和Linux图形化工具实现的宝贵平台。通过对rdesktop-1.7.1源代码的学习和...

    Hadoop安装部署实验材料

    通过以上步骤,你将在本地环境中成功搭建起一个运行Hadoop的伪分布式系统,为后续的大数据处理学习和实践打下坚实基础。记得在实验过程中,细心操作,遇到问题不要慌张,多查阅文档和社区资源,你会逐渐掌握Hadoop的...

    clipboardcli访问系统的剪贴板复制粘贴跨平台

    标题 "clipboardcli访问系统的剪贴板复制粘贴跨平台" 提到的是一个名为 `clipboard-cli` 的工具,它允许开发者通过命令行接口(CLI)在不同的操作系统上方便地访问和操作系统的剪贴板功能,包括复制和粘贴操作。...

    启动新开发工作区的简便方法。-Linux开发

    该配置是根据Erick Wendel的设置以及我作为JS开发人员和其他... Curl-用于通过URL传输数据的命令行工具和库Git-免费和开源的分布式版本控制系统Oh-My-Zsh-管理ZSH配置的框架Xclip-X11剪贴板的命令行界面VsCode-Sourc

    jpm是使用openssl和signify(以及可选的xclip)的密码管理器-Ruby开发

    jpm是使用openssl和signify(以及可选的xclip)的密码管理器。 ... jpm¶↑jpm是使用openssl和signify(以及可选的xclip)的密码管理器。...如果使用clip命令,则xclip必须在PATH中。 用法¶↑#创建〜/ .jpm导演

    org-download:将图像拖放到Emacs组织模式

    组织下载 该扩展有助于将图像从A点移动到B点。 A点(源)可以是: 浏览器中的图像,可以将其拖动到Emacs。 您可以将文件系统上的图像拖到... B点(目标)是一个Emacs org-mode缓冲区,将在此缓冲区中插入内联链接。

    天正CAD快捷键总结.pdf

    - Ctrl+J:重复上一个命令。 - Ctrl+N:新建文件。 - Ctrl+M:打印布局。 5. 命令行中使用的快捷键: - CAD*ARCAD:天正CAD程序。 - ATTEDIT:编辑属性。 - AA:查询面积。 - ARC:绘制弧线。 - ALIGN:...

Global site tag (gtag.js) - Google Analytics