Пользователь
57,4
рейтинг
5 ноября 2014 в 23:58

Разработка → Просмотр всех нажатий клавиш в Google Docs

С мая 2010 года Google Docs ввёл новый формат документов, который сохраняет подробную историю версий. Вы можете открутить действия назад, словно в замедленном фильме. Текстовый редактор сохраняет время нажатия клавиш с точностью до микросекунды.

Журналист и хакер Джеймс Сомерс сумел взломать внутренний формат Google Docs и извлечь метки времени для каждого нажатия клавиш. Таким образом, вы можете посмотреть историю создания документа от начала и до конца. Более того, кейлоггер Google Docs очень продвинутый: он присваивает уникальные идентификаторы символам, так что знает даже, откуда и куда скопирована каждая буква!

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

Джеймс Сомерс уже несколько лет занимается созданием текстовых редакторов. Введение нового формата Google Docs в 2010 году стало для него личным вызовом, и он приступил к тщательному изучению, написал расширение к Chrome для перехвата нажатий клавиш, создал первую версию «плеера» с историей правок.

Прорыв случился в тот момент, когда Джеймс заметил на вкладке Network в Инспекторе Chrome, что после каждого нажатия клавиши Chrome генерирует вызов save.



Например, при наборе точки в конце предложения отправляется следующая информация:



Эти данные сохраняются в истории изменений, вместе с метками времени. Полную историю версий документа Google Docs можно получить, если зайти в меню «Просмотреть историю изменений» (Revision History). Она вызывается по URL примерно такого вида:

docs.google.com/document/d/#{docid}/revisions/load?id=#{docid}&start=1330&end=1341

Достаточно всего лишь изменить параметры start и end в этом URL, чтобы скачать полную историю изменений документа. Первым ставим единицу, а последнее число подбираем методом тыка двоичным поиском.

Для генерации «видеороликов» с историей нажатий клавиш Джеймс Сомерс запустил сайт Draftback.com, который работает через Google API. Загрузив туда свои (или чужие) документы, можно посмотреть, как они создавались.



Draftback автоматически генерирует график с частотностью правок по времени (вверху).

Соммерс говорит, что большинство его коллег были неприятно удивлены, когда он им рассказал о такой «побочной» функциональности Google Docs. Хотя, это вполне логичная функция: как ещё сохранять историю правок, если не с помощью кейлоггера?

Но, с другой стороны, ведь такая функция может раскрыть перед нами новые грани творчества писателей и поэтов, показать историю создания журналистских статей и текстов государственных законов… Нужно всего лишь, чтобы автор работал в Google Docs, а по окончании работы выкладывал свой труд в открытый доступ. Мы можем увидеть от начала и до конца, как создавался каждый текст.
Анатолий Ализар @alizar
карма
751,5
рейтинг 57,4
Пользователь
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Спецпроект

Самое читаемое Разработка

Комментарии (15)

  • +2
    А что насчет того, что было введено, а потом вытерто (маты) и прочее?
    • +1
      Как я понимаю это история версий — значит если маты были, в истории они будут.

      Сам бывает комментирую ТЗ написанные сотрудниками не совсем нормативными словами, как теперь дальше жить.
      • +1
        Так точно. История версий доступна всем редакторам и без этой волшебной не документированной фичи.
        Если желаете скрыть историю, делайте копию документа перед расшариванием.
  • +11
    как ещё сохранять историю правок, если не с помощью кейлоггера?
    Да хотя бы с помощью диффов между определенными интервалами времени и/или между существенными изменениями, или при явном сохранении…

    Текстовый редактор сохраняет время нажатия клавиш с точностью до микросекунды.
    такая функция может раскрыть перед нами новые грани творчества писателей и поэтов, показать историю создания журналистских статей и текстов государственных законов
    Мой внутренний параноик почему-то видит совсем другие способы применения такой «фичи», например, анализ «почерка» наборщика текста, создания фингерпринта, сопоставление его с базой для идентификации личности, раскрытие конфиденциальной информации, введенной случайно или временно в черновом варианте документа до его публикации, и тд, и тп, и др…
    • –5
      Ну и будут диффы состоять из одного символа и его позиции, если сохранять все изменения.

      анализ «почерка» наборщика текста, создания фингерпринта, сопоставление его с базой для идентификации личности
      А это не нужно — обычно пользователи гуглдокс и так задают все свои данные в аккаунте, хранят там все свои контакты и переписку.
    • +4
      Данный метод обусловлен технической реализацией позволяющей безпроблемно редактировать один документ многими участниками. Доступ к подробной истории с таймстампами это побочный эффект данной реализации.
  • +21
    Главное, чтобы вот так не получилось:
    Объяснительная
  • +2
    Чужая история видна только если есть доступ на редактирование.
  • +4
    Создаётся спрос как минимум на 2 продукта:
    1. Чистильщик доков, переписывающий документ без правок.
    2. Спецпрограмма для генерации подставной истории правок и подставного почерка набора.
    • +6
      Копия документа создаст чистую ревизию, я уверен.
  • +3
    Хм, можно так скрытые послания передавать только тем, кто «в курсе» в расшаренных документах
  • +1
    Да пошли вы все…
    Как меня это всё зае...


    Прошу предоставить тарифный отпуск.
  • 0
    Похоже ресурс прилёг под хаброэффектом.
    Надеюсь они справятся, интересная штука.
  • +1
    Лично я для важных документов, открытых на редактирование другим пользователям, поступаю так:
    1. Копирую текст готового документа.
    2. Создаю новый документ и туда вставляю текст.
    3. Новый документ расшариваю пользователям.
    Таким образом, история изменений документа пошла с начала. Это удобно.
  • 0
    Таблицы spreadsheets не отрабатывает, только документы, беда печаль.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.