stringtranslate.com

Portapapeles (informática)

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 RAM del ordenador . [1]

El portapapeles proporciona una interfaz de programación de aplicaciones mediante la cual los programas pueden especificar operaciones de cortar, copiar y pegar . Corresponde al programa 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 sensato 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 de portapapeles puede brindarle al usuario control adicional sobre el portapapeles. La semántica específica del portapapeles varía entre los sistemas operativos, también puede variar entre versiones del mismo sistema y, en ocasiones, puede cambiarse mediante programas y preferencias del usuario.

Windows , Linux y macOS admiten una única transacción del portapapeles. [2] [3]

Historia

Pentti Kanerva utilizó por primera vez los portapapeles como búfer para pequeños fragmentos de texto cuando los utilizó para almacenar textos eliminados con el fin de restaurarlos. [4] Dado que se 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 cambió el nombre de esto en 1973 a cortar, copiar y pegar y acuñó el término "portapapeles" para este búfer, ya que estas técnicas necesitan un portapapeles para guardar temporalmente los datos copiados o cortados. [5]

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). [6] En algunas circunstancias, la transferencia de ciertos formatos de datos comunes puede lograrse 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 negocia los formatos que se pueden transferir entre ellas, a menudo con el widget GUI activo responsable de proporcionar transformaciones de tipos aceptables. El tablero permite la transferencia de elementos comunes como URL, colores, imágenes, cadenas, cadenas de atributos ( texto enriquecido ) y sonidos. El sistema operativo y el conjunto de herramientas GUI pueden proporcionar algunas conversiones comunes, por ejemplo, la conversión de texto enriquecido a texto sin formato 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 tipos, como entre MIME y Uniform Type Identifier . [7] [8]

La seguridad informática

El secuestro del portapapeles es un exploit en el que el contenido del portapapeles de una persona es reemplazado por datos maliciosos, como un enlace a un sitio web malicioso. [9] Si bien se solucionaron algunos agujeros de seguridad, JavaScript todavía se puede utilizar para modificar el contenido del portapapeles mediante un ataque denominado 'pastejacking'. [10] [11] Dylan Ayrey, quien 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 quería ejecutar. [12]

Ha habido vulnerabilidades en las que las páginas web toman datos del portapapeles. A principios de 2013, los investigadores expusieron los riesgos derivados 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. [13] 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". [14] [1]

Gestión del portapapeles y extensiones.

Glipper , un ejemplo de 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 kits de herramientas GUI incompatibles, los administradores de portapapeles se utilizan a menudo para transferir datos entre aplicaciones que utilizan diferentes marcos de trabajo.

Cuando un administrador de portapapeles proporciona múltiples transacciones de cortar y pegar, el portapapeles se trata como una pila o un álbum 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 brindan acceso a las otras transacciones almacenadas. Estos gestores generalmente también proporcionan 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 (por ejemplo, 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 persistentemente. 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 en un evento de copia o corte, haciendo 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 copiar y pegar (por ejemplo, al iniciar sesión en un servidor remoto de Windows, no se puede copiar y pegar su nombre de usuario y contraseña).

Portapapeles específicos del sistema operativo

AmigaOS

El sistema operativo Amiga utiliza 256 unidades, por lo que uno tiene varios portapapeles al mismo tiempo. [15]

Androide

Android proporciona un portapapeles que puede contener hasta un objeto de clip y es accesible en 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. [dieciséis]

Para interactuar con el portapapeles, una aplicación utiliza la clase ClipboardManager [17] y llamadas al 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 "Portapapeles" que le da acceso al usuario 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 su disposición.

iOS

El portapapeles se llama "tablero de trabajo" en iOS, similar a OS X. Las aplicaciones en este sistema operativo pueden crear tableros de trabajo adicionales, llamados instancias de la clase UIPasteboard, que pueden ser públicos o privados. Una instancia puede contener un solo elemento o varios elementos en diferentes formatos. [18]

Los formatos se identifican mediante Identificadores de tipo uniforme (UTI). [19]

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.

Mac OS

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

El contenido del portapapeles se puede ver seleccionando el elemento de menú Mostrar portapapeles en el menú Editar del Finder. Los datos sin procesar y los formatos almacenados se pueden ver usando ClipboardViewer. [20]

Usando los siguientes comandos se puede acceder al portapapeles desde la línea de comando: [21] [22]

$ # para copiar datos al portapapeles: $ echo 'hola mundo' | pbcopy $ # para pegar desde el portapapeles: $ pbpaste hola mundo   

Microsoft Windows y ReactOS

El portapapeles en Microsoft Windows y ReactOS contiene un elemento en múltiples formatos disponibles.

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

Hasta Windows XP inclusive , se podía acceder al portapapeles a través de la aplicación ClipBook Viewer . [26] En las versiones más recientes de Windows se puede acceder al contenido a través de administradores de portapapeles .

Los datos se pueden almacenar en el portapapeles de Windows [27] y ReactOS [28] a través de la línea de comando usando el comando clip : [29]

$ # para pegar el contenido de una carpeta en el portapapeles: $ dir | acortar  

También se puede acceder al portapapeles a través de PowerShell : [30] [31]

# para pegar el contenido de un directorio en el portapapeles Set-Clipboard  -Path  "C:\directory\" # para obtener el contenido del portapapeles Get-Clipboard

Windows 10 y Windows 11 incluyen la aplicación Portapapeles, que permite el almacenamiento de múltiples elementos del portapapeles basados ​​en texto. Se puede acceder presionando Windows+V.

Sistema de ventana X

El sistema X Window comúnmente utilizado en sistemas Unix y Linux proporciona tres portapapeles, que se denominan "CLIPBOARD", "PRIMARY" y "SECONDARY". [32] El uso y manejo de diversas selecciones no está estandarizado. Sin embargo, la mayoría de los kits de herramientas y entornos de escritorio modernos, como GNOME o KDE , siguen una convención ampliamente aceptada, descrita en la especificación freedesktop.org . [33] Una selección, CLIPBOARD, se utiliza para la semántica tradicional del portapapeles, con atajos 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 pegarlos con el tercer botón (central) del mouse. [34] Estos datos copiados generalmente están separados de la selección del PORTAPAPELES y no cambian su contenido. [35] SECUNDARIO se planeó como una alternativa a PRIMARIO pero solo se usa de manera inconsistente. [32]

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

$ # para pegar la salida estándar en el portapapeles usando xclip
$ echo text | xclip -in -selección portapapeles        $ # para pegar la salida estándar en el portapapeles usando xsel
$ echo text | xsel --portapapeles      

La principal diferencia con OS X y Windows es que en realidad no se almacenan datos en el portapapeles CLIPBOARD, sino sólo 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. [34] Al pegar estos datos, se solicitan los datos y sus formatos disponibles a la aplicación propietaria de la selección CLIPBOARD. [37]

API

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

javascript

En JavaScript existe una clase que detecta cambios en los datos del portapapeles de los usuarios (ClipboardEvent) [38] y funciona para alterar el contenido de un portapapeles o leerlo (clipboardData.getData(), clipboardData.setData()) [39] , pero No son compatibles con todos los navegadores, ya que alterar el portapapeles de un usuario puede representar un problema de seguridad.

cuarto

En Qt existe un contenedor para cada plataforma compatible [40] . Proporciona acceso a los portapapeles del sistema de ventanas con el uso de la clase QClipboard. Esta clase facilita el acceso a tipos de datos comunes por funciones. [41] 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.

Ver también

Referencias

  1. ^ ab "¿Qué es un portapapeles en informática? - Definición de Techopedia". Techinfo.com . Archivado desde el original el 2018-02-02 . Consultado el 1 de febrero de 2018 .
  2. ^ Kimmatkar, Sarang B. (2014). "Ampliación de funcionalidades del portapapeles predeterminado". (IJCSIT) Revista Internacional de Ciencias de la Computación y Tecnologías de la Información 5 . 6 .
  3. ^ Stephens, varilla (2010). Visual Basic 2010: referencia del programador . Biblioteca Génesis. Indianápolis, IN: Wiley Pub., Inc. ISBN 978-0-470-49983-2.
  4. ^ Moggridge, Bill (2007). Diseñar interacciones . Cambridge, Massachusetts: MIT Press. pag. 65 y siguientes. ISBN 9780262134743.
  5. ^ Larry Tesler. "Una retrospectiva de la experiencia del usuario". Archivado desde el original el 2018-02-02 . Consultado el 23 de enero de 2018 .
  6. ^ "Arrastrar archivos". desarrollador.apple.com . Consultado el 9 de diciembre de 2018 .
  7. ^ "NSPasteboard - AppKit | Documentación para desarrolladores de Apple". desarrollador.apple.com . Archivado desde el original el 26 de mayo de 2018 . Consultado el 9 de diciembre de 2018 .
  8. ^ "Adopción de identificadores de tipo uniforme". desarrollador.apple.com . Archivado desde el original el 21 de julio de 2018 . Consultado el 9 de diciembre de 2018 .
  9. ^ "¿Qué es un ataque de secuestro del portapapeles? - Definición de WhatIs.com". WhatIs.com . Archivado desde el original el 5 de enero de 2017 . Consultado el 4 de enero de 2017 .
  10. ^ Chirgwin, Richard. "El ataque Pastejack convierte tu portapapeles en una amenaza". El registro. Archivado desde el original el 4 de enero de 2017 . Consultado el 4 de enero de 2017 .
  11. ^ "Un investigador advierte sobre ataques de piratería de 'pastejacking' dirigidos a los portapapeles de los usuarios". Graham Cluley. 26 de mayo de 2016. Archivado desde el original el 5 de enero de 2017 . Consultado el 4 de enero de 2017 .
  12. ^ "dxa4481/Pastejacking". GitHub . Archivado desde el original el 4 de enero de 2017 . Consultado el 4 de enero de 2017 .
  13. ^ Fahl, Sascha; Harbach, Marian; Oltrogge, Marta; Muders, Thomas; Smith, Mateo (2013). "Oye, bájate de mi portapapeles" (PDF) . Criptografía financiera y seguridad de datos . Apuntes de conferencias sobre informática. vol. 7859, págs. 144-161. doi :10.1007/978-3-642-39884-1_12. ISBN 978-3-642-39883-4. Archivado (PDF) desde el original el 19 de septiembre de 2017 . Consultado el 4 de enero de 2017 .
  14. ^ "¿Usar un administrador de contraseñas en Android? Puede estar muy expuesto a ataques de rastreo". Ars Técnica. 21 de noviembre de 2014. Archivado desde el original el 4 de enero de 2017 . Consultado el 4 de enero de 2017 .
  15. ^ "Dispositivo de portapapeles - Wiki de documentación de AmigaOS". wiki.amigaos.net . Archivado desde el original el 5 de febrero de 2018 . Consultado el 3 de febrero de 2018 .
  16. ^ "Copiar y pegar | Desarrolladores de Android". desarrollador.android.com . Archivado desde el original el 7 de febrero de 2018 . Consultado el 6 de febrero de 2018 .
  17. ^ "ClipboardManager | Desarrolladores de Android". desarrollador.android.com . Archivado desde el original el 7 de febrero de 2018 . Consultado el 2 de febrero de 2018 .
  18. ^ "Cartón". desarrollador.apple.com . Archivado desde el original el 7 de febrero de 2018 . Consultado el 1 de febrero de 2018 .
  19. ^ "Identificador de tipo uniforme". desarrollador.apple.com . Archivado desde el original el 7 de febrero de 2018 . Consultado el 6 de febrero de 2018 .
  20. ^ "Visor del portapapeles". desarrollador.apple.com . Archivado desde el original el 7 de febrero de 2018 . Consultado el 6 de febrero de 2018 .
  21. ^ "Copiar al portapapeles desde la terminal en OS X". rogeriopvl.com . Archivado desde el original el 15 de agosto de 2013 . Consultado el 2 de julio de 2013 .
  22. ^ "Página del manual de pbcopy(1) Mac OS X". apple.com . Archivado desde el original el 28 de marzo de 2014 . Consultado el 2 de julio de 2013 .
  23. ^ "Formatos del portapapeles (Windows)". msdn.microsoft.com . Archivado desde el original el 7 de febrero de 2018 . Consultado el 3 de febrero de 2018 .
  24. ^ "Formatos estándar del portapapeles (Windows)". msdn.microsoft.com . Archivado desde el original el 7 de febrero de 2018 . Consultado el 3 de febrero de 2018 .
  25. ^ "Formato de portapapeles HTML (Internet Explorer)". msdn.microsoft.com . Archivado desde el original el 7 de febrero de 2018 . Consultado el 3 de febrero de 2018 .
  26. ^ "Ver y administrar el portapapeles en Windows 10/8/7". El Club de las Ventanas . 2013-04-12. Archivado desde el original el 12 de febrero de 2018 . Consultado el 6 de febrero de 2018 .
  27. ^ "clip | Documentos de Microsoft". Docs.microsoft.com. 2017-10-16 . Consultado el 26 de septiembre de 2019 .
  28. ^ "reactos/base/applications/cmdutils/clip en master · reaccionaros/reactos · GitHub". Github.com . Consultado el 26 de septiembre de 2019 .
  29. ^ "Cómo copiar la salida de la línea de comandos al portapapeles de Windows". www.labnol.org . Archivado desde el original el 7 de febrero de 2018 . Consultado el 6 de febrero de 2018 .
  30. ^ sdwheeler. "Obtener portapapeles (Microsoft.PowerShell.Management)". docs.microsoft.com . Archivado desde el original el 26 de enero de 2018 . Consultado el 6 de febrero de 2018 .
  31. ^ sdwheeler. "Establecer portapapeles (Microsoft.PowerShell.Management)". docs.microsoft.com . Archivado desde el original el 7 de febrero de 2018 . Consultado el 6 de febrero de 2018 .
  32. ^ ab "Portapapeles - ArchWiki". wiki.archlinux.org . Archivado desde el original el 17 de febrero de 2018 . Consultado el 16 de febrero de 2018 .
  33. ^ "especificaciones de portapapeles". freedesktop.org. Archivado desde el original el 24 de diciembre de 2014 . Consultado el 16 de agosto de 2014 .
  34. ^ ab "Copiar y pegar, arrastrar y soltar [MI Wiki]". wiki.mi.ur.de (en alemán). Archivado desde el original el 16 de febrero de 2018 . Consultado el 16 de febrero de 2018 .
  35. ^ "gnu.org". www.gnu.org . Archivado desde el original el 24 de diciembre de 2017 . Consultado el 16 de febrero de 2018 .
  36. ^ "Copiar y pegar desde y hacia el portapapeles del sistema en la línea de comandos - Fernando Basso". fernandobasso.github.io . Archivado desde el original el 7 de febrero de 2018 . Consultado el 6 de febrero de 2018 .
  37. ^ "Selecciones X, búferes de corte X y anillos de eliminación de Emacs". www.jwz.org . Archivado desde el original el 4 de marzo de 2018 . Consultado el 2 de febrero de 2018 .
  38. ^ "API y eventos del portapapeles: ClipboardEvent". www.w3.org . Archivado desde el original el 28 de enero de 2018 . Consultado el 8 de febrero de 2018 .
  39. ^ "Eventos y API del portapapeles: API del portapapeles síncrono". www.w3.org . Archivado desde el original el 28 de enero de 2018 . Consultado el 8 de febrero de 2018 .
  40. ^ "plataformas\plugins\src - qt/qtbase.git - Qt Base (Core, Gui, Widgets, Red, ...)". código.qt.io . Archivado desde el original el 9 de febrero de 2018 . Consultado el 2 de febrero de 2018 .
  41. ^ "Clase QClipboard | Qt GUI 5.10". doc.qt.io.Archivado desde el original el 2018-02-02 . Consultado el 2 de febrero de 2018 .

Otras lecturas

enlaces externos