ae_ph
@ae_ph
Если помог - отметь решением \( ゚ヮ゚)/

Как защитить кнопку от автоматического клика?

Есть кнопка на сайте button и по ней нужно кликать мышкой.
Но если у себя в браузере, в консоли забить следующий js она будет кликаться автоматом.
setInterval(
    function() {
        let button = document.querySelector('.button');
        button.click() + console.log('Был клик');
    }, 1000);

Как защитить её от такого метода?
  • Вопрос задан
  • 332 просмотра
Решения вопроса 2
Aleksandr-JS-Developer
@Aleksandr-JS-Developer
Работает? Не трогай.
"Можно легко отличить «настоящее» событие от сгенерированного кодом.
Свойство event.isTrusted принимает значение true для событий, порождаемых реальными действиями пользователя, и false для генерируемых кодом.
"
(с) learn.javascript.ru

подробнее (ru)
Ответ написан
WblCHA
@WblCHA
Если просто, то так:
document.body.addEventListener('click', (e) => {
  if(!e.pageX && !e.pageY) {
    e.stopPropagation();
  }
}, true);

При использовании функции клика место клика всегда равно нулю.
Понятное дело его можно обойти, но на клиенте всё можно обойти.)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@forgetable
Node/Flutter/C++
Я был неправ.

На самом деле, решение простое. Разработчики использовали свойство event'а isTrusted, которое говорит, было событие вызвано дейсвиями пользователя (тогда будет true), или нет (будет false). Они проверяют это значение.

P.S: бэк тут абсолютно ни при чём.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы