Jump to content

Буфер обмена (вычисления)

(Перенаправлено из Clip (команда) )

Буфер обмена — это буфер, который некоторые операционные системы предоставляют для кратковременного хранения и передачи данных внутри прикладных программ и между ними. компьютера Буфер обмена обычно является временным и безымянным, а его содержимое находится в оперативной памяти . [ 1 ]

Буфер обмена предоставляет интерфейс прикладного программирования , с помощью которого программы могут указывать вырезания, копирования и вставки операции . Программа оставляет за собой определение методов, с помощью которых пользователь может управлять этими операциями, которые могут включать в себя сочетания клавиш и выбор меню . Когда элемент копируется или вырезается, буфер обмена должен хранить достаточно информации, чтобы обеспечить разумный результат независимо от того, куда вставлен элемент. Прикладные программы могут расширять функции буфера обмена, предоставляемые операционной системой. Менеджер буфера обмена может предоставить пользователю дополнительный контроль над буфером обмена. Конкретная семантика буфера обмена различается в зависимости от операционной системы, а также может различаться в разных версиях одной и той же системы и иногда может меняться программами и предпочтениями пользователя.

Windows , Linux и macOS поддерживают одну транзакцию буфера обмена. [ 2 ] [ 3 ]

Буфер обмена в качестве буфера для небольших фрагментов текста впервые был использован Пентти Канервой, когда он использовал его для хранения удаленных текстов с целью их восстановления. [ 4 ] Поскольку можно было удалить текст в одном месте и восстановить его в другом, термин «удалить» в данном случае был не тем, чего можно было бы ожидать. Ларри Теслер в 1973 году переименовал это в вырезание, копирование и вставку и придумал для этого буфера термин «буфер обмена», поскольку для этих методов необходим буфер обмена для временного сохранения скопированных или вырезанных данных. [ 5 ]

Форматы данных

[ редактировать ]

Приложения взаимодействуют через буфер обмена, предоставляя либо сериализованные представления объекта, либо обещание (для более крупных объектов). [ 6 ] В некоторых случаях передача некоторых общих форматов данных может быть непрозрачной за счет использования абстрактной фабрики ; например, Mac OS X использует класс NSImage для обеспечения доступа к данным изображения, хранящимся в буфере обмена, хотя фактический формат данных изображения, поддерживающих объект, скрыт. Приложение-отправитель и получатель согласовывают форматы, которые могут передаваться между ними, часто с активным виджетом графического интерфейса, ответственным за обеспечение приемлемых преобразований типов. Монтажный стол позволяет передавать общие элементы, такие как URL-адреса, цвета, изображения, строки, строки с атрибутами ( форматированный текст ) и звуки. Операционная система и набор инструментов графического пользовательского интерфейса могут обеспечивать некоторые общие преобразования, например преобразование форматированного текста в обычный текст и наоборот. Современные операционные системы поддерживают различные идентификаторы типов для передачи данных, которые могут автоматически обеспечивать приемлемые сопоставления между системами типов, например между MIME и Uniform Type Identifier . [ 7 ] [ 8 ]

Компьютерная безопасность

[ редактировать ]

Взлом буфера обмена или внедрение буфера обмена — это эксплойт , при котором содержимое буфера обмена человека заменяется вредоносными данными, такими как ссылка на вредоносный веб-сайт. [ 9 ] Например, если пользователь копирует адрес получения криптовалюты в буфер обмена, программа угона может перезаписать его адресом, контролируемым угонщиком, так что, когда пользователь вставляет адрес, его криптовалюта будет передана угонщику, а не предполагаемому получателю. [ 10 ] Хотя некоторые дыры в безопасности были исправлены, JavaScript по-прежнему можно использовать для изменения содержимого буфера обмена с помощью атаки, получившей название «pastejacking». [ 11 ] [ 12 ] Дилан Эйри, разработавший атаку, создал веб-сайт, демонстрирующий, как этот эксплойт можно использовать, чтобы обманом заставить пользователя выполнить команды, которые он не хотел запускать. [ 13 ]

Были случаи, когда веб-страницы захватывали данные буфера обмена. В начале 2013 года исследователи выявили риски, связанные с Android на базе менеджерами паролей , и задокументировали, как пароли в 21 из самых популярных из этих приложений могут быть доступны любому другому приложению на устройстве Android, в том числе с крайне низким уровнем привилегий. [ 14 ] Джо Зигрист отмечает, что это « проблема на уровне ОС , которая влияет на все, что работает на Android». [ 15 ] [ 1 ]

Управление буфером обмена и расширения

[ редактировать ]
Glipper , пример программы управления буфером обмена

Расширения менеджера буфера обмена добавляют функциональность встроенным функциям буфера обмена операционной системы. Это приложения, которые позволяют пользователю манипулировать буфером обмена. На таких платформах, как Linux, которые используют несколько несовместимых наборов инструментов графического пользовательского интерфейса, менеджеры буфера обмена часто используются для передачи данных между приложениями, использующими разные подобные платформы.

Когда менеджер буфера обмена предоставляет несколько транзакций вырезания и вставки, буфер обмена рассматривается как стопка или альбом для вырезок, а новые вырезки и копии помещаются в список последних транзакций. Стандартная операция вставки копирует самую последнюю транзакцию, а специализированная вставка обеспечивает доступ к другим сохраненным транзакциям. Эти менеджеры обычно также предоставляют окно, которое отображает историю транзакций и позволяет пользователю выбирать более ранние копии, редактировать их, изменять их формат и даже выполнять поиск среди них.

Поскольку большинство операционных систем (например, Windows, macOS, Linux, X11, Android, iOS) не сохраняют содержимое буфера обмена в каком-либо постоянном хранилище — когда пользователь выходит из системы или перезагружает систему, содержимое буфера обмена удаляется — дополнительная функция заключается в сохранении буфер обмена настойчиво. Другой пример — заставить локальный буфер обмена работать с онлайн-приложениями, сохраняя данные буфера обмена в онлайн-местоположении при копировании или вырезании, делая эти данные доступными для онлайн-приложений для вставки. Менеджеры буфера обмена также могут служить инструментами для преодоления ограничений программного обеспечения, не поддерживающих копирование и вставку (например, при входе на удаленный сервер Windows невозможно скопировать и вставить свое имя пользователя и пароль).

Буфер обмена для конкретной операционной системы

[ редактировать ]

Операционная система Amiga использует 256 единиц, поэтому одновременно имеется несколько буферов обмена. [ 16 ]

Android предоставляет буфер обмена, который может содержать до одного объекта клипа и доступен для всей системы. Простой текст сохраняется прямо в буфере обмена; сложные данные хранятся по ссылке. Объект клипа имеет один из трех форматов: текстовая строка, объект URI или намерение. [ 17 ]

Для взаимодействия с буфером обмена приложение использует класс ClipboardManager. [ 18 ] и системные вызовы для вырезания, копирования и вставки объектов.

В Android 8.0 буфер обмена сначала появляется в пользовательском интерфейсе: в ситуации, когда пользователь готовится вставить данные из буфера обмена, появляется опция «Буфер обмена», которая предоставляет пользователю доступ ко многим объектам, скопированным или вырезанным в буфер обмена в прошлом. Кроме того, как и в более ранних версиях, пользователь не имеет доступа к буферу обмена, за исключением приложений, которые делают его доступным для пользователя.

Буфер обмена в iOS называется «монтажным столом», как и в OS X. Приложения в этой операционной системе могут создавать дополнительные монтажные области, называемые экземплярами класса UIPasteboard, которые могут быть общедоступными или частными. Один экземпляр может содержать один элемент или несколько элементов в разных форматах. [ 19 ]

Форматы идентифицируются унифицированными идентификаторами типов (UTI). [ 20 ]

К данным, содержащимся на монтажном столе, нельзя получить доступ через графический интерфейс, а только из системы и приложений.

Буфер обмена в macOS содержит один элемент в нескольких доступных форматах.

Содержимое буфера обмена можно просмотреть, выбрав пункт меню «Показать буфер обмена» в меню «Правка» Finder. Необработанные данные и сохраненные форматы можно просмотреть с помощью ClipboardViewer. [ 21 ]

Доступ к буферу обмена можно получить из командной строки с помощью следующих команд: [ 22 ] [ 23 ]

$ # to copy data into the clipboard:
$ echo 'hello world' | pbcopy
$ # to paste from the clipboard:
$ pbpaste
hello world

Microsoft Windows и ReactOS

[ редактировать ]
клип
Разработчик(и) Microsoft , участники ReactOS
Операционная система Windows , РеактОС
Тип Команда
Лицензия Windows: проприетарное коммерческое программное обеспечение.
ReactOS: Стандартная общественная лицензия GNU
Веб-сайт документы .microsoft /en-нас /Windows-сервер /администрация /Windows-команды /клип

Буфер обмена в Microsoft Windows и ReactOS содержит один элемент в нескольких доступных форматах.

Каждый элемент имеет по крайней мере один формат буфера обмена, но одни и те же данные могут иметь разные типы формата. Три различных типа возможных форматов: [ 24 ]

  • стандартные форматы [ 25 ] (например, CF_BITMAP или CF_UNICODETEXT),
  • зарегистрированные форматы [ 26 ] (например, CF_HTML)
  • частные форматы для внутреннего использования

До Windows XP включительно доступ к буферу обмена можно было получить через приложение ClipBook Viewer . [ 27 ] В более новых версиях Windows доступ к содержимому можно получить через менеджеры буфера обмена .

Данные могут быть сохранены в Windows [ 28 ] и РеактОС [ 29 ] clip буфер обмена через командную строку с помощью команды : [ 30 ]

$ # to paste the content of a folder to the clipboard:
$ dir | clip

Доступ к буферу обмена также можно получить через PowerShell : [ 31 ] [ 32 ]

# to paste the content of a directory to the clipboard
Set-Clipboard -Path "C:\directory\"
# to get the content of the clipboard
Get-Clipboard

Windows 10 и Windows 11 включают приложение «Буфер обмена», позволяющее хранить несколько текстовых элементов буфера обмена. Доступ к нему можно получить, нажав Windows+V.

X оконная система

[ редактировать ]

Система X Window, обычно используемая в системах Unix и Linux, предоставляет три буфера обмена, которые называются «БУФЕР ОБМЕНА», «ПЕРВИЧНЫЙ» и «ВТОРИЧНЫЙ». [ 33 ] Использование и обработка различных вариантов выбора не стандартизированы. Однако большинство современных наборов инструментов и сред рабочего стола, таких как GNOME или KDE , следуют широко распространенному соглашению, изложенному в спецификации freedesktop.org . [ 34 ] Один вариант, БУФЕР ОБМЕНА, используется для традиционной семантики буфера обмена с ярлыками, идентичными Windows. Другой вариант, PRIMARY, представляет собой механизм, специфичный для X11. Данные «копируются» сразу после выделения и вставляются третьей (средней) кнопкой мыши. [ 35 ] Эти скопированные данные обычно отделяются от выделения БУФЕР ОБМЕНА и не меняют его содержимое. [ 36 ] SECONDARY планировался как альтернатива PRIMARY, но использовался непоследовательно. [ 33 ]

Существует два инструмента командной строки (xsel и xclip), которые могут получить доступ к буферу обмена: [ 37 ]

$ # to paste standard output to the clipboard using xclip
$ echo text | xclip -in -selection clipboard
$ # to paste standard output to the clipboard using xsel
$ echo text | xsel --clipboard

Основное отличие от OS X и Windows заключается в том, что в буфере обмена CLIPBOARD фактически не хранятся никакие данные, а только ссылка на скопированные или вырезанные данные. Приложение заявляет о своем праве на выделенный фрагмент БУФЕР ОБМЕНА и сообщает о своем владении X-серверу. [ 35 ] При вставке этих данных данные и их доступные форматы запрашиваются из приложения, которому принадлежит выбор БУФЕР ОБМЕНА. [ 38 ]

Приложения могут получать доступ к буферу обмена или его данным через API .

В JavaScript класс, который обнаруживает изменения в данных буфера обмена пользователя (ClipboardEvent). [ 39 ] и функции для изменения содержимого буфера обмена или чтения из него (clipboardData.getData(), clipboardData.setData()) [ 40 ] существуют, но поддерживаются не всеми браузерами, поскольку изменение буфера обмена пользователя может представлять собой проблему безопасности.

В Qt есть оболочка для каждой поддерживаемой платформы. [ 41 ] существует. Он обеспечивает доступ к буферу обмена оконной системы с использованием класса QClipboard. Этот класс облегчает доступ к общим типам данных с помощью функций. [ 42 ] Тип данных элемента, хранящегося в буфере обмена, указывается через MIME, а данные MIME также можно поместить в буфер обмена с помощью функций этого класса.

См. также

[ редактировать ]
  1. ^ Jump up to: а б «Что такое буфер обмена в вычислительной технике? — Определение из Techopedia» . Techopedia.com . Архивировано из оригинала 2 февраля 2018 г. Проверено 1 февраля 2018 г.
  2. ^ Кимматкар, Саранг Б. (2014). «Расширение функциональности буфера обмена по умолчанию». (IJCSIT) Международный журнал компьютерных наук и информационных технологий 5 . 6 .
  3. ^ Стивенс, Род (2010). Visual Basic 2010: справочник программиста . Библиотечный Бытие. Индианаполис, Индиана: Wiley Pub., Inc. ISBN  978-0-470-49983-2 .
  4. ^ Моггридж, Билл (2007). Проектирование взаимодействий . Кембридж, Массачусетс: MIT Press. п. 65 и далее . ISBN  9780262134743 .
  5. ^ Ларри Теслер. «Ретроспектива пользовательского опыта» . Архивировано из оригинала 2 февраля 2018 г. Проверено 23 января 2018 г.
  6. ^ «Перетаскивание файлов» . разработчик.apple.com . Проверено 9 декабря 2018 г.
  7. ^ «NSPasteboard — AppKit | Документация разработчика Apple» . разработчик.apple.com . Архивировано из оригинала 26 мая 2018 г. Проверено 9 декабря 2018 г.
  8. ^ «Принятие единых идентификаторов типов» . разработчик.apple.com . Архивировано из оригинала 21 июля 2018 г. Проверено 9 декабря 2018 г.
  9. ^ «Что такое атака захвата буфера обмена? — Определение с сайта WhatIs.com» . WhatIs.com . Архивировано из оригинала 5 января 2017 г. Проверено 4 января 2017 г.
  10. ^ «Инжектор буфера обмена, распространяемый под видом Tor Browser» . Securelist.com . 28 марта 2023 г. Проверено 15 мая 2024 г.
  11. ^ Чиргвин, Ричард. «Атака Pastejack превращает ваш буфер обмена в угрозу» . Регистр. Архивировано из оригинала 4 января 2017 г. Проверено 4 января 2017 г.
  12. ^ «Исследователь предупреждает о хакерских атаках, нацеленных на буфер обмена пользователей» . Грэм Клули. 26 мая 2016 г. Архивировано из оригинала 05 января 2017 г. Проверено 4 января 2017 г.
  13. ^ «dxa4481/Pastejacking» . Гитхаб . Архивировано из оригинала 4 января 2017 г. Проверено 4 января 2017 г.
  14. ^ Фаль, Саша; Харбах, Мариан; Олтрогге, Мартен; Мудерс, Томас; Смит, Мэтью (2013). «Эй, ты, вылезай из моего буфера обмена» (PDF) . Финансовая криптография и безопасность данных . Конспекты лекций по информатике. Том. 7859. стр. 144–161. дои : 10.1007/978-3-642-39884-1_12 . ISBN  978-3-642-39883-4 . Архивировано (PDF) из оригинала 19 сентября 2017 г. Проверено 4 января 2017 г.
  15. ^ «Используете менеджер паролей на Android? Он может быть широко открыт для атак с перехватом» . Арс Техника. 21 ноября 2014 г. Архивировано из оригинала 4 января 2017 г. Проверено 4 января 2017 г.
  16. ^ «Устройство буфера обмена — Wiki-документация AmigaOS» . Wiki.amigaos.net . Архивировано из оригинала 05 февраля 2018 г. Проверено 3 февраля 2018 г.
  17. ^ «Копировать и вставить | Разработчики Android» . Developer.android.com . Архивировано из оригинала 07 февраля 2018 г. Проверено 06 февраля 2018 г.
  18. ^ «Менеджер буфера обмена | Разработчики Android» . Developer.android.com . Архивировано из оригинала 07 февраля 2018 г. Проверено 2 февраля 2018 г.
  19. ^ «Картон» . разработчик.apple.com . Архивировано из оригинала 07 февраля 2018 г. Проверено 1 февраля 2018 г.
  20. ^ «Единый идентификатор типа» . разработчик.apple.com . Архивировано из оригинала 07 февраля 2018 г. Проверено 06 февраля 2018 г.
  21. ^ «Просмотр буфера обмена» . разработчик.apple.com . Архивировано из оригинала 07 февраля 2018 г. Проверено 06 февраля 2018 г.
  22. ^ «Копировать в буфер обмена из терминала в OS X» . rogeriopvl.com . Архивировано из оригинала 15 августа 2013 г. Проверено 2 июля 2013 г.
  23. ^ «Страница руководства pbcopy(1) Mac OS X» . apple.com . Архивировано из оригинала 28 марта 2014 г. Проверено 2 июля 2013 г.
  24. ^ «Форматы буфера обмена (Windows)» . msdn.microsoft.com . Архивировано из оригинала 07 февраля 2018 г. Проверено 3 февраля 2018 г.
  25. ^ «Стандартные форматы буфера обмена (Windows)» . msdn.microsoft.com . Архивировано из оригинала 07 февраля 2018 г. Проверено 3 февраля 2018 г.
  26. ^ «Формат буфера обмена HTML (Internet Explorer)» . msdn.microsoft.com . Архивировано из оригинала 07 февраля 2018 г. Проверено 3 февраля 2018 г.
  27. ^ «Просмотр и управление буфером обмена в Windows 10/8/7» . Клуб Windows . 12 апреля 2013 г. Архивировано из оригинала 12 февраля 2018 г. Проверено 06 февраля 2018 г.
  28. ^ «клип | Документы Microsoft» . Документы.microsoft.com. 16 октября 2017 г. Проверено 26 сентября 2019 г.
  29. ^ «reactos/base/applications/cmdutils/clip at master · actos/reactos · GitHub» . Гитхаб.com . Проверено 26 сентября 2019 г.
  30. ^ «Как скопировать вывод командной строки в буфер обмена Windows» . www.labnol.org . Архивировано из оригинала 07 февраля 2018 г. Проверено 06 февраля 2018 г.
  31. ^ sdwheeler. «Get-Буфер обмена (Microsoft.PowerShell.Management)» . docs.microsoft.com . Архивировано из оригинала 26 января 2018 г. Проверено 06 февраля 2018 г.
  32. ^ sdwheeler. «Set-Буфер обмена (Microsoft.PowerShell.Management)» . docs.microsoft.com . Архивировано из оригинала 07 февраля 2018 г. Проверено 06 февраля 2018 г.
  33. ^ Jump up to: а б «Буфер обмена — ArchWiki» . wiki.archlinux.org . Архивировано из оригинала 17 февраля 2018 г. Проверено 16 февраля 2018 г.
  34. ^ "буфер обмена-спецификация" . freedesktop.org. Архивировано из оригинала 24 декабря 2014 г. Проверено 16 августа 2014 г.
  35. ^ Jump up to: а б «Копирование и вставка, перетаскивание [MI Wiki]» . wiki.mi.ur.de (на немецком языке). Архивировано из оригинала 16 февраля 2018 г. Проверено 16 февраля 2018 г.
  36. ^ «gnu.org» . www.gnu.org . Архивировано из оригинала 24 декабря 2017 г. Проверено 16 февраля 2018 г.
  37. ^ «Копирование и вставка в системный буфер обмена и из него в командной строке — Фернандо Бассо» . Fernandobasso.github.io . Архивировано из оригинала 07 февраля 2018 г. Проверено 06 февраля 2018 г.
  38. ^ «Выбор X, буферы X Cut и кольца уничтожения Emacs» . www.jwz.org . Архивировано из оригинала 04 марта 2018 г. Проверено 2 февраля 2018 г.
  39. ^ «API и события буфера обмена — ClipboardEvent» . www.w3.org . Архивировано из оригинала 28 января 2018 г. Проверено 8 февраля 2018 г.
  40. ^ «API и события буфера обмена — синхронный API буфера обмена» . www.w3.org . Архивировано из оригинала 28 января 2018 г. Проверено 8 февраля 2018 г.
  41. ^ "платформы\плагины\src - qt/qtbase.git - база Qt (ядро, графический интерфейс, виджеты, сеть,...)" . код.qt.io. Архивировано из оригинала 9 февраля 2018 г. Проверено 2 февраля 2018 г.
  42. ^ «Класс QClipboard | Qt GUI 5.10» . doc.qt.io. Архивировано из оригинала 2 февраля 2018 г. Проверено 2 февраля 2018 г.

Дальнейшее чтение

[ редактировать ]
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 933b21cf4f21acfacfcfb1e4d5067fd8__1715739240
URL1:https://arc.ask3.ru/arc/aa/93/d8/933b21cf4f21acfacfcfb1e4d5067fd8.html
Заголовок, (Title) документа по адресу, URL1:
Clipboard (computing) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)