Portapapeles (informática)

format_list_bulleted Contenido keyboard_arrow_down
ImprimirCitar

El portapapeles es un búfer que algunos sistemas operativos proporcionan para el almacenamiento y la transferencia a corto plazo dentro y entre programas de aplicación. El portapapeles suele ser temporal y sin nombre, y su contenido reside en la memoria RAM del ordenador.

El portapapeles proporciona una interfaz de programación de aplicaciones mediante la cual los programas pueden especificar operaciones de cortar, copiar y pegar. El programa debe definir métodos para que el usuario ordene estas operaciones, que pueden incluir combinaciones de teclas y selecciones de menú. Cuando se copia o corta un elemento, el portapapeles debe almacenar suficiente información para permitir un resultado razonable sin importar dónde se pegue el elemento. Los programas de aplicación pueden ampliar las funciones del portapapeles que proporciona el sistema operativo. Un administrador del portapapeles puede brindar al usuario un control adicional sobre el portapapeles. La semántica específica del portapapeles varía entre los sistemas operativos, también puede variar entre las versiones del mismo sistema y, a veces, puede ser modificada por los programas y las preferencias del usuario.

Windows, Linux y macOS admiten una única transacción del portapapeles.

Historia

Los portapapeles como buffers para pequeños fragmentos de texto fueron utilizados por primera vez por Pentti Kanerva cuando los utilizó para almacenar textos eliminados con el fin de restaurarlos. Dado que uno podía eliminar un texto en un lugar y restaurarlo en otro, el término "eliminar" no era lo que uno esperaría en este caso. Larry Tesler renombró esto en 1973 como cortar, copiar y pegar y acuñó el término "portapapeles" para este buffer, ya que estas técnicas necesitan un portapapeles para guardar temporalmente los datos copiados o cortados.

Formatos de datos

Las aplicaciones se comunican a través del portapapeles proporcionando representaciones serializadas de un objeto o una promesa (para objetos más grandes). En algunas circunstancias, la transferencia de ciertos formatos de datos comunes se puede lograr de forma opaca mediante el uso de una fábrica abstracta; por ejemplo, Mac OS X utiliza una clase llamada NSImage para proporcionar acceso a los datos de imagen almacenados en el portapapeles, aunque el formato real de los datos de imagen que respaldan el objeto está oculto. La aplicación emisora y receptora negocian los formatos que se pueden transferir entre ellas, a menudo con el widget de GUI activo responsable de proporcionar transformaciones de tipo aceptables. El portapapeles permite la transferencia de elementos comunes como URL, colores, imágenes, cadenas, cadenas con atributos (texto enriquecido) y sonidos. El sistema operativo y el kit de herramientas de GUI pueden proporcionar algunas conversiones comunes, por ejemplo, la conversión de texto enriquecido a texto simple y viceversa. Los sistemas operativos modernos admiten varios identificadores de tipo para la transferencia de datos, que pueden proporcionar automáticamente asignaciones aceptables entre sistemas de tipo, como entre MIME y el Identificador de tipo uniforme.

Seguridad informática

El secuestro del portapapeles o la inyección del mismo es un exploit en el que el contenido del portapapeles de una persona se reemplaza por datos maliciosos, como un enlace a un sitio web malicioso. Por ejemplo, si un usuario copia una dirección de recepción de criptomonedas en el portapapeles, un programa de secuestro puede sobrescribirla con una dirección controlada por el secuestrador, de modo que cuando el usuario pega la dirección, su criptomoneda se transmite al secuestrador en lugar de al destinatario previsto. Si bien se han reparado algunos agujeros de seguridad, JavaScript todavía se puede utilizar para modificar el contenido del portapapeles mediante un ataque denominado "pastejacking". Dylan Ayrey, que desarrolló el ataque, creó un sitio web que demuestra cómo se puede utilizar este exploit para engañar a un usuario para que ejecute comandos que no desea ejecutar.

Han existido vulnerabilidades en las que las páginas web capturan datos del portapapeles. A principios de 2013, los investigadores expusieron los riesgos que se derivan de los administradores de contraseñas basados en Android y documentaron cómo cualquier otra aplicación en un dispositivo Android podía acceder a las contraseñas de 21 de las aplicaciones más populares, incluidas aquellas con privilegios de nivel extremadamente bajo. Joe Siegrist señala que se trata de un "problema a nivel del sistema operativo que afecta a todo lo que se ejecuta en Android".

Gestión y extensiones de cartón

Glipper, un ejemplo de un programa de gestión de portapapeles

Las extensiones del administrador del portapapeles agregan funcionalidad a las funciones integradas del portapapeles de un sistema operativo. Son aplicaciones que permiten al usuario manipular el portapapeles. En plataformas como Linux que utilizan múltiples conjuntos de herramientas de interfaz gráfica de usuario incompatibles, los administradores del portapapeles se utilizan a menudo para transferir datos entre aplicaciones que utilizan diferentes marcos de trabajo.

Cuando un gestor de portapapeles ofrece múltiples transacciones de cortar y pegar, el portapapeles se trata como una pila o un libro de recortes, y los nuevos cortes y copias se colocan en una lista de transacciones recientes. La operación de pegado estándar copia la transacción más reciente, mientras que los pegados especializados proporcionan acceso a las demás transacciones almacenadas. Estos gestores suelen ofrecer también una ventana que muestra el historial de transacciones y permite al usuario seleccionar copias anteriores, editarlas, cambiar su formato e incluso buscar entre ellas.

Dado que la mayoría de los sistemas operativos (p. ej., Windows, macOS, Linux, X11, Android, iOS) no guardan el contenido del portapapeles en ningún almacenamiento persistente (cuando un usuario cierra sesión o reinicia el sistema, el contenido del portapapeles se elimina), una funcionalidad adicional es guardar el portapapeles de forma persistente. Otro ejemplo es hacer que el portapapeles local funcione con aplicaciones en línea guardando los datos del portapapeles en la ubicación en línea tras un evento de copia o corte, lo que hace que estos datos estén disponibles para que las aplicaciones en línea los peguen. Los administradores del portapapeles también pueden servir como herramientas para superar la limitación del software que no admite la función de copiar y pegar (por ejemplo, al iniciar sesión en un servidor remoto de Windows, no se puede copiar y pegar el nombre de usuario y la contraseña).

Portapapeles del sistema operativo

AmigaOS

El sistema operativo Amiga utiliza 256 unidades, por lo que se pueden tener varios portapapeles al mismo tiempo.

Android

Android ofrece un portapapeles que puede contener hasta un objeto de clip y al que se puede acceder desde todo el sistema. El texto simple se almacena directamente en el portapapeles; los datos complejos se almacenan por referencia. El objeto de clip tiene uno de tres formatos: cadena de texto, objeto URI o intención.

Para interactuar con el portapapeles, una aplicación utiliza la clase ClipboardManager y llamadas del sistema para cortar, copiar y pegar objetos.

En Android 8.0, el portapapeles aparece por primera vez en la interfaz de usuario: en una situación en la que el usuario se prepara para pegar desde el portapapeles, aparece una opción llamada 'Portapapeles' que le da acceso a muchos objetos copiados o cortados en el portapapeles en el pasado. Aparte de eso, y en versiones anteriores, el usuario no tiene acceso al portapapeles excepto en las aplicaciones que lo ponen a disposición del usuario.

IOS

El portapapeles se denomina "portapapeles" en iOS, de forma similar a OS X. Las aplicaciones de este sistema operativo pueden crear portapapeles adicionales, llamados instancias de la clase UIPasteboard, que pueden ser públicas o privadas. Una instancia puede contener un solo elemento o varios elementos en diferentes formatos.

Los formatos se identifican mediante identificadores de tipo uniforme (UTI).

No se puede acceder a los datos contenidos en el portapapeles a través de la GUI, sino solo desde el sistema y las aplicaciones.

MacOS

El portapapeles en macOS contiene un elemento en varios formatos disponibles.

El contenido del portapapeles se puede visualizar seleccionando el elemento de menú Mostrar portapapeles del menú Editar del Finder. Los datos sin procesar y los formatos almacenados se pueden ver utilizando el Visor del portapapeles.

Se puede acceder al portapapeles desde la línea de comandos mediante los siguientes comandos:

$ # para copiar datos en el portapapeles:$ eco 'hola mundo ' Silencio pbcopy
$ # to paste from the clipboard:$ pbpaste
Hola mundo

Microsoft Windows y ReactOS

El portapapeles de Microsoft Windows y ReactOS contiene un elemento en varios formatos disponibles.

Cada elemento tiene al menos un formato de portapapeles, pero puede tener distintos tipos de formato para los mismos datos. Los tres tipos de formatos posibles son:

  • formatos estándar (por ejemplo, CF_BITMAP, o CF_UNICODETEXT),
  • formatos registrados (por ejemplo, CF_HTML)
  • formatos privados para uso interno

Hasta Windows XP, se podía acceder al portapapeles a través de la aplicación ClipBook Viewer. En las versiones más nuevas de Windows, se puede acceder al contenido a través de los administradores del portapapeles.

Los datos se pueden almacenar en el portapapeles de Windows y ReactOS mediante la línea de comandos usando el comando clip:

$ # para pegar el contenido de una carpeta al portapapeles:$ dir Silencio clip

También se puede acceder al portapapeles a través de PowerShell:

# to paste the content of a directory to the clipboardSet-Clipboard -Path "C:\directory\"# to get the content of the clipboardBloqueo

Windows 10 y Windows 11 incluyen la aplicación Portapapeles, que permite almacenar varios elementos del portapapeles basados en texto. Se puede acceder a ella presionando Windows+V.

X Window System

El sistema X Window, que se utiliza habitualmente en los sistemas Unix y Linux, ofrece tres portapapeles, denominados "PORTAPAPELES", "PRIMARIO" y "SECUNDARIO". El uso y manejo de las distintas selecciones no está estandarizado. Sin embargo, la mayoría de los conjuntos de herramientas y entornos de escritorio modernos, como GNOME o KDE, siguen una convención ampliamente aceptada, descrita en la especificación de freedesktop.org. Una selección, "PORTAPAPELES", se utiliza para la semántica tradicional del portapapeles, con accesos directos idénticos a los de Windows. Otra selección, "PRIMARIO", es un mecanismo específico de X11. Los datos se "copian" inmediatamente después de resaltarlos y se pegan con el tercer botón (el del medio) del ratón. Estos datos copiados suelen estar separados de la selección "PORTAPAPELES" y no cambian su contenido. "SECUNDARIO" se planeó como una alternativa a "PRIMARIO", pero solo se utiliza de forma inconsistente.

Hay dos herramientas de línea de comandos (xsel y xclip) que pueden acceder al portapapeles:

$ # to paste standard output to the clipboard using xclip$ eco texto Silencio xclip -in - Elección portapapeles
$ # to paste standard output to the clipboard using xsel$ eco texto Silencio xsel --clipboard

La principal diferencia con OS X y Windows es que en el portapapeles CLIPBOARD no se almacenan datos, sino solo la referencia a los datos copiados o cortados. La aplicación reclama la propiedad de la selección CLIPBOARD y comunica su propiedad al servidor X. Al pegar estos datos, se solicitan los datos y sus formatos disponibles a la aplicación propietaria de la selección CLIPBOARD.

API

Las aplicaciones pueden acceder al portapapeles o a sus datos a través de las API.

JavaScript

En JavaScript existe una clase que detecta cambios en los datos del portapapeles del usuario (ClipboardEvent) y funciones para alterar el contenido de un portapapeles o leer desde él (clipboardData.getData(), clipboardData.setData()), pero no todos los navegadores las admiten, ya que alterar el portapapeles de un usuario puede representar un problema de seguridad.

Qt

En Qt existe un contenedor para cada plataforma compatible. Proporciona acceso a los portapapeles del sistema de ventanas mediante el uso de la clase QClipboard. Esta clase facilita el acceso a los tipos de datos comunes mediante funciones. El tipo de datos del elemento almacenado en el portapapeles se indica mediante MIME y los datos MIME también se pueden colocar en el portapapeles con la ayuda de funciones de esta clase.

Véase también

  • Clipboard manager
  • Cortar, copiar y pegar

Referencias

  1. ^ a b "¿Qué es un Clipboard en Computing? - Definición de Techopedia". Techopedia.com. Archivado desde el original en 2018-02-02. Retrieved 2018-02-01.
  2. ^ Kimmatkar, Sarang B. (2014). "Extender funcionalidades de portapapeles predeterminados". (IJCSIT) International Journal of Computer Science and Information Technologies 5. 6.
  3. ^ Stephens, Rod (2010). Visual Basic 2010: referencia del programador. Biblioteca Génesis. Indianapolis, IN: Wiley Pub., Inc. ISBN 978-0-470-49983-2.
  4. ^ Moggridge, Bill (2007). Diseño de interacciones. Cambridge, Massachusetts: MIT Press. p. 65ff. ISBN 9780262134743.
  5. ^ Larry Tesler. "Una retrospectiva de la experiencia de usuario". Archivado desde el original en 2018-02-02. Retrieved 23 de enero 2018.
  6. ^ "Archivado de archivos". developer.apple.com. Retrieved 9 de diciembre 2018.
  7. ^ "NSPasteboard - AppKit peru Apple Developer Documentation". developer.apple.com. Archivado desde el original en 2018-05-26. Retrieved 9 de diciembre 2018.
  8. ^ "Adopting Uniform Type Identifiers". developer.apple.com. Archivado desde el original en 2018-07-21. Retrieved 9 de diciembre 2018.
  9. ^ "¿Qué es el ataque de secuestrador de portapapeles? - Definición de WhatIs.com". WhatIs.com. Archivado desde el original en 2017-01-05. Retrieved 4 de enero 2017.
  10. ^ "Inyector de portapapeles distribuido bajo el guise de Tor Browser". securelist.com. 2023-03-28. Retrieved 2024-05-15.
  11. ^ Chirgwin, Richard. "El ataque de Peastejack convierte tu portapapeles en una amenaza". El Registro. Archivado desde el original en 2017-01-04. Retrieved 4 de enero 2017.
  12. ^ "El investigador advierte de ataques de 'pastejacking' contra usuarios' clipboards". Graham Cluley. 26 mayo 2016. Archivado desde el original en 2017-01-05. Retrieved 4 de enero 2017.
  13. ^ "dxa4481/Pastejacking". GitHub. Archivado desde el original en 2017-01-04. Retrieved 4 de enero 2017.
  14. ^ Fahl, Sascha; Harbach, Marian; Oltrogge, Marten; Muders, Thomas; Smith, Matthew (2013). "Oye, tú, bájate de mi tablero" (PDF). Cryptografía Financiera y Seguridad de Datos. Notas de conferencia en Ciencias de la Computación. Vol. 7859. pp. 144–161. doi:10.1007/978-3-642-39884-1_12. ISBN 978-3-642-39883-4. Archivado (PDF) del original en 2017-09-19. Retrieved 4 de enero 2017.
  15. ^ "¿Usando un administrador de contraseñas en Android? Puede ser muy abierto para oler ataques". Ars Technica. 21 noviembre 2014. Archivado desde el original en 2017-01-04. Retrieved 4 de enero 2017.
  16. ^ "Dispositivo de tablero - AmigaOS Documentación Wiki". wiki.amigaos.net. Archivado desde el original en 2018-02-05. Retrieved 2018-02-03.
  17. ^ "Copy and Paste ← Android Developers". developer.android.com. Archivado desde el original en 2018-02-07. Retrieved 2018-02-06.
  18. ^ "ClipboardManager ← Android Desarrolladores". developer.android.com. Archivado desde el original en 2018-02-07. Retrieved 2018-02.
  19. ^ "Pasteboard". developer.apple.com. Archivado desde el original en 2018-02-07. Retrieved 2018-02-01.
  20. ^ "Uniform Type Identifier". developer.apple.com. Archivado desde el original en 2018-02-07. Retrieved 2018-02-06.
  21. ^ "ClipboardViewer". developer.apple.com. Archivado desde el original en 2018-02-07. Retrieved 2018-02-06.
  22. ^ "Copy to clipboard from terminal in OS X". rogeriopvl.com. Archivado desde el original el 2013-08-15. Retrieved 2013-07-02.
  23. ^ "pbcopy(1) Mac OS X Manual Page". apple.com. Archivado desde el original el 2014-03-28. Retrieved 2013-07-02.
  24. ^ "Formatos de tablero (Windows)". msdn.microsoft.com. Archivado desde el original en 2018-02-07. Retrieved 2018-02-03.
  25. ^ "Standard Clipboard Formats (Windows)". msdn.microsoft.com. Archivado desde el original en 2018-02-07. Retrieved 2018-02-03.
  26. ^ "HTML Clipboard Format (Internet Explorer)". msdn.microsoft.com. Archivado desde el original en 2018-02-07. Retrieved 2018-02-03.
  27. ^ "Ver " Administrar el tablero en Windows 10/8/7". El Club de Windows. 2013-04-12. Archivado desde el original en 2018-02-12. Retrieved 2018-02-06.
  28. ^ "clip peru Microsoft Docs". Docs.microsoft.com. 2017-10-16. Retrieved 2019-09-26.
  29. ^ "reactos/base/applicaciones/cmdutils/clip en master · reactos/reactos · GitHub". Github.com. Retrieved 2019-09-26.
  30. ^ "Cómo copiar la salida de la línea de comandos al panel de control de Windows". www.labnol.org. Archivado desde el original en 2018-02-07. Retrieved 2018-02-06.
  31. ^ Sdwheeler. "Get-Clipboard (Microsoft.PowerShell.Management)". docs.microsoft.com. Archivado desde el original en 2018-01-26. Retrieved 2018-02-06.
  32. ^ Sdwheeler. "Set-Clipboard (Microsoft.PowerShell.Management)". docs.microsoft.com. Archivado desde el original en 2018-02-07. Retrieved 2018-02-06.
  33. ^ a b "Clipboard - ArchWiki". wiki.archlinux.org. Archivado desde el original en 2018-02-17. Retrieved 2018-02-16.
  34. ^ "clipboards-spec". freedesktop.org. Archivado desde el original el 19 de diciembre de 2012. Retrieved 2014-08-16.
  35. ^ a b "Copy " Paste, Drag " Drop [MI Wiki]". wiki.mi.ur.de (en alemán). Archivado desde el original en 2018-02-16. Retrieved 2018-02-16.
  36. ^ "gnu.org". www.gnu.org. Archivado desde el original en 2017-12-24. Retrieved 2018-02-16.
  37. ^ "Copying and Pasting To and From the System Clipboard On The Command Line — Fernando Basso". fernandobasso.github.io. Archivado desde el original en 2018-02-07. Retrieved 2018-02-06.
  38. ^ "X Selections, X Cut Buffers y Emacs Kill Rings". www.jwz.org. Archivado desde el original en 2018-03-04. Retrieved 2018-02.
  39. ^ "Clipboard API y eventos – ClipboardEvent". www.w3.org. Archivado desde el original en 2018-01-28. Retrieved 2018-02-08.
  40. ^ "Clipboard API y eventos – API de Clipboard sincrónico". www.w3.org. Archivado desde el original en 2018-01-28. Retrieved 2018-02-08.
  41. ^ "platforms\plugins\src - qt/qtbase.git - Qt Base (Core, Gui, Widgets, Network,...)". code.qt.io. Archivado desde el original en 2018-02-09. Retrieved 2018-02.
  42. ^ "QClipboard Class tención Qt GUI 5.10". doc.qt.io. Archivado desde el original en 2018-02-02. Retrieved 2018-02.

Más lectura

  • Stanek, William R. (2008). Windows Command-Line Administrator's Pocket Consultant, 2nd Edition. Microsoft Press. ISBN 978-0735622623.
  • McElhearn, Kirk (2006). The Mac OS X Command Line: Unix Under the Hood. John Wiley & Sons. ISBN 978-0470113851.
  • clip viv Microsoft Docs
  • 2. Peer-to-Peer Communication by Means of Selections in the ICCCM
  • Centro Windows Dev: Transferir objetos de Shell con Drag-and-Drop y el Clipboard
  • Microsoft Developer Network: Cómo funciona el Clipboard, Parte 1
  • Microsoft Developer Network: Cómo funciona el Clipboard, Parte 2
  • Microsoft Developer Network: Delayed Rendering of Clipboard Data
Más resultados...
Tamaño del texto:
undoredo
format_boldformat_italicformat_underlinedstrikethrough_ssuperscriptsubscriptlink
save