2009-05-17 2 views
2

При работе над редактором wysiwyg я попал в стену Firefox, ограничивая доступ к буферу (еще не тестировавший Webkit).Copy & Paste in Firefox

  1. Может кто-то объяснить, почему копирование в буфер обмена ограничен?

    Я просто не могу придумать ни одного способа, чтобы это можно было использовать нечестно, а прецеденты изобилуют, когда недостаток поддержки «копий» является проблемой.
    Фактически, целые библиотеки, такие как zeroClipboard, предназначены только для облегчения этой функции.

    (я понимаю - но не согласен. - что позволяет чтения доступа в буфер обмена может создать отверстие, хотя всплывающие бы решить, что)

  2. Есть ли какие-нибудь хорошее хаки/методы, которые дали бы мне " вставить 'кнопку? Я видел сообщения, ссылающиеся на «трюк textarea» среди других, без объяснения того, как они работают.

  3. Есть ли термин для слишком распространенного сценария, когда продукцией законных пользователей мешают «меры предосторожности», а «плохие парни» используют хаки [как zeroClip], которые делают безопасное чувство полностью ложным?

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

ответ

0

Возможно, вы удалили что-то из приложения, которое не поддерживает отмену или что-то вставить в другое место. Если было разрешено автоматически модифицировать буфер обмена, вы могли бы потерять данные, которые вы отрезали.

+0

Понял. Но это не дыра в безопасности, и его задача не защищать Firefox. Представьте, если Word ограничен «копией», опасаясь, что у вас может быть что-то ценное в буфере обмена! Копирование - это то, что всегда следует делать с осторожностью. Но использование является реальным, и часть входа в интерактивные страницы означает, что пользователь должен иметь возможность выбирать для взаимодействия. (Представьте себе сайт, который предлагает фрагменты JS.После каждого фрагмента он говорит «нажмите здесь, чтобы скопировать в буфер обмена») – SamGoody

+1

@samgoody: настольные приложения, такие как Word, принципиально отличаются от веб-приложений ... Вы решили установить Word, вы решили запустить его с пониманием того, что он имеет полный доступ к вашей системе. Предполагается, что веб-приложения будут работать в изолированной программной среде браузера, при этом мало или совсем не будет доступа к системе за ее пределами. «Песочница» природы веб-приложений - это и благословение, и проклятие для разработчиков: хотя это может быть очень ограниченным, нет необходимости убеждать пользователей доверять вам достаточно, чтобы установить их на свою машину ... что-то ущемляющее восприятие, что * посещение сайт * безопасен для всех. – Shog9

+0

@ Shog9 - «все, что ущемляет восприятие, что * посещение веб-сайта * безопасно повредит всем». Хорошая точка зрения. Хотя по этой логике мы должны быть еще более ограничительными. Из-за вкуса ответов, я думаю, я единственный, кто считает, что это контрпродуктивно, поэтому я лучше всего держу язык. – SamGoody

3

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

Да, мы обычно считаем данные буфера обмена «менее важными», поскольку он является временным. Но он по-прежнему принадлежит пользователю, а не любая страница, которая будет открыта. Представьте сценарий, который из misguided hope предотвращает нарушение авторских прав, cleared out your clipboard каждые 100 миллисекунд! Или тот, который скопировал опасные системные команды, надеясь, что небольшое число пользователей вставляет их в терминал без двойной проверки сначала ...

FWIW, начиная с version 10, Flash также ужесточил ограничения на изменение буфера обмена: такие изменения теперь должны произойти как прямой результат взаимодействия пользователя.

+0

Если это религиозная вещь (например, их приверженность w3c любой ценой), то я понимаю. В противном случае: правда, браузеры смогут очистить буфер обмена, так же, как они могут уже очистить файлы cookie или написать JS, что приводит к сбою браузера и/или компьютера. Но система строится вокруг этого - потенциальные риски против вознаграждений. Несмотря на множество жалоб на IE за эти годы, эта «дыра» НИКОГДА не эксплуатируется (быстрый Google, буфер обмена читается, но не очищается). Ваши сценарии ... невероятные. Те, кто использует терминалы, не запускают нераспознанный код (и терминалы не поддерживают вставку). И теория авторских прав ... – SamGoody

+0

Вы знаете, если бы вы написали один ответ за комментарий, у вас было бы пространство, чтобы их заполнить больше ... Я начинаю думать, что этот вопрос возник из-за желания вас более, чем какой-либо особый интерес к тому, чтобы увидеть ответ. – Shog9

1

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

+0

Согласовано. Поэтому Flash позволяет записывать данные в буфер обмена, но не читать. Модель безопасности Flash имеет смысл. Firefox/Webkit's, нет. Весь мой вопрос заключался в том, почему нельзя записывать данные * в буфер обмена? – SamGoody