Отключить копирование и вставку в полях ввода HTML?

Возможное дублирование:
Отключить копирование / Вставить в HTML-форму с помощью Javascript

Мой банк, похоже, отключил копирование и вставку имени пользователя и пароль.

Как это делается? Повышает ли это безопасность?


person Adam Matan    schedule 09.10.2012    source источник
comment
Копирование и вставка работает на этом сайте, в любом случае в Chrome.   -  person MrCode    schedule 09.10.2012
comment
это почти не повышает безопасность, так как вы можете просто посмотреть на исходный код, а способ сделать это в разных браузерах различается.   -  person Josiah Hester    schedule 09.10.2012
comment
Это повышает безопасность, поскольку раздражает пользователей до такой степени, что они больше не беспокоят использование сайта.   -  person DA.    schedule 09.10.2012
comment
Это не улучшает безопасность (скорее, наоборот, поощряет простой ввод паролей) и иногда используется в полях подтверждения, где пользователь должен повторить предыдущий ввод, чтобы предотвратить копирование и вставку опечаток. На самом деле это только усложняет жизнь пользователя, особенно если он хочет скопировать / вставить безопасные случайные пароли / коды из диспетчера паролей. Для хрома есть отличное расширение, которое предотвращает эту ерунду. Найдите "Chrome dont f with paste".   -  person timm    schedule 19.09.2016
comment
Спасибо @timm за подсказку. Я использую менеджер паролей и 28-символьные бессмысленные пароли, и только что получил новую кредитную карту и банк F'ed with Paste! Я попытался вручную ввести значение в инспекторе кода на Brave, но их сценарий меня перехитрил. Но это расширение их перехитрило.   -  person Milton    schedule 14.02.2020


Ответы (1)


Вы можете отключить вставку во входных данных следующим образом:

html:

<input type="text" value="" id="myInput">

javascript:

window.onload = () => {
 const myInput = document.getElementById('myInput');
 myInput.onpaste = e => e.preventDefault();
}

Говоря о безопасности, я бы не сказал, что это влияет. Обычно вы используете как клиентскую, так и серверную проверку данных, отправленных пользователем.

person Ilya Sidorovich    schedule 09.10.2012
comment
Это действительно улучшает процесс безопасности, но не напрямую. В частности, при подтверждении ПИН-кода или пароля. Если пользователь ввел ошибку в первый раз, вставка той же информации означает, что теперь он не знает своего ПИН-кода, что означает затраты и время, необходимые для сбросить его снова. В более широком смысле, очевидно, что нужно делать все обычные проверки ... - person user3600150; 30.03.2016
comment
+1 за прямой, ясный ответ и необязательное предупреждение (в отличие от других пользователей (не здесь!), Которые начинают бесконечные обсуждения, не давая ответа). PS: Это не должно иметь никакого отношения к безопасности. Отключение вставки может быть полезно, чтобы пользователи не копировали и вставляли НЕПРАВИЛЬНЫЕ данные, например адрес электронной почты - это для преимуществ пользователей (у меня была такая ситуация с одним из наших крупных деловых клиентов, пользователи которого ХОТИЛИ не иметь возможность случайно вставить неправильную информацию). - person StanE; 18.06.2016
comment
Как отключить это на стороне клиента с помощью инструментов разработчика Chrome? - person Carmageddon; 14.06.2017
comment
@StanE: это не позволяет пользователям вставлять неправильные данные, но также не позволяет пользователям вставлять правильные данные. Я использую менеджер паролей и позволяю ему генерировать очень надежный пароль. Затем я копирую / вставляю его, так как для правильного ввода потребуется вечность, со всеми специальными символами. - person user276648; 18.07.2017
comment
Предотвращать копирование и вставку - это глупо, это НЕ влияет на безопасность, а также усугубляет проблемы использования диспетчера паролей, созданных в некоторых случаях надежных паролей. - person Jammer; 31.07.2017
comment
Это не увеличивает безопасность, это снижает безопасность, поскольку снижает вероятность использования надежных паролей и диспетчера паролей. - person vy32; 04.07.2018
comment
В инструментах разработчика вы можете создать или отредактировать свойство value и вставить все, что захотите: value="paste_here" - person Sandy; 23.04.2019
comment
Отключение вставки также делает пользователя уязвимым для клавиатурных шпионов. - person SVD; 27.11.2019
comment
Это было полезно для меня по причине, совершенно не связанной с безопасностью (не давая пользователям фальсифицировать ввод данных, когда они должны сканировать штрих-коды) - рад, что на вопрос ответили напрямую, без мнения о сценарии использования. - person MrRobboto; 01.01.2020