@tekerosi said in Запрет изображений с маской data:image/png/jpg:
никакой из выше перечисленных вариантов не сработал.
907259bb-7ac6-424a-93f5-666a247b9a5a-image.png
document.querySelectorAll('img[src^="data:image"]').forEach(img => img.remove());Народ помогите пож. с такой задачей:
Ответ капчи - одна из нескольких картинок, но эти картинки часто закрывают друг друга (частично или полностью). Когда немного, тут еще можно через координаты и размер пересчитать место для клика, но когда одна полность (или почти полность) загораживает другую возникает главная проблема - какая картинка сверху? можно кликать или нет? И при почти полном перекрытии, можно ли кликать по области перекрытия (если нужная картинка сверху).
Похоже по частоте таких выцеливаний кромки нужной картинки или обновлению страницы когда картинки 100% наложены - сайт отлавливает ботов, потому что на этой капче я уже словил бан.
Одно уточнение - это не мешанина из мелких картинок на большом холсте, а именно несколько картинок, каждая со своими селекторами (но без URL'ов), и картинки почти постоянно в разной степени, но перекрывают друг друга.
@Lokko

вот и весь пример - одна картинка наложилась на другую (наложение произвольное: по горизонтали, вертикали, с угла), а в коде страницы за все ответы капчи (картинки) отвечает блок строк вида
<button type="submit" name="captcha" width="..." height="..." class="img" value="..."></button>
которые отличаются только атрибутом. Картинки кликабельные и нужную я уже знаю (она бывает как сверху, так и накрыта), но какая из них накрыта, а какая поверх ? вот тут проблема.
Раньше я расчитывал НЕ пересекающиеся области и кликал только по ним или обновлял страницу если перекрытие слишком большое/полное, но по этой фишке сайт меня и спалил.
@_User_ Nfr
Варианты решений (ресурс не знаю, поэтому чистая фантазия)
Если бы такая задача встала у меня, я выбрал бы третий вариант. Так как он не зависит от верстки и конкретно ресурса. То есть более универсален. Да и не сравнивал я еще картинки, и реализация была бы more fun для меня.
Если BAS позволяет загрузить npm модуль с webassembly, то и писать можно много на каком языке, а не только на javascript с его "приколами".
Попробуй вручную:
Может быть предварительно нужно провести "нормализацию" картинок. Может быть сделать их черно белыми, может еще что. Обычно используют imagemagick. Или консольную утилиту https://imagemagick.org/script/convert.php. Бывают случаи, что изображения зашумлены и надо подготовить их к процессингу.
<button type="submit" name="captcha" width="..." height="..." class="img" value="..."></button>
На java, HTML и прочем WEB я не пишу (максимум кое что могу понять "со словарем" :) ) иначе давно бы распотрошил код чтобы найти откуда картинки грузятся для сравнения со скриншотом или очерёдность отрисовки элементов (последний сверху), а может там и что попроще с моим вопросом нашлось бы.
а за ссылки спасибо - сейчас посмотю получится ли что из них наковырять.
@_User_ Есть кейсы, когда, если юзер спалился, ему подсовываются вообще не те данные. К примеру ты видишь один код, а нормальные посетители другой.
Пример:
Есть вариант попробовать зарегать ручками пачку акков, но делать по логике, как у тебя в скрипте, Если ты там клацаешь по "диагонали", то и клацай так же ручками. Если юзаешь какие то специфичные прокси, то используй их же. Для чистоты эксперимента юзай Fingerprint Manager. Так как под капотом он использует все тот же worker, что и BAS. Так же, так как ты регаешь ботов (если вообще есть такое понятие как рега, а не простое прохождение каптчи для попадания куда-то внутрь без реги), не просто так, то не делай ничего потом, что делаешь обычно. Так как стоит задача проверить именно регу, а не дальнейшее поведение.
Я понимаю твой опасения, что спалился из-за выцеливания, и тем не менее есть пути проще на стороне овнера ресурса. Тем более у тебя есть вариант поснифать запросы, что сайт шлет и если ну НИКАКИМ образом не шлет координаты мыши на сервер, то он скорее всего и не палит где ты там клацнул.
Проверь с помощью CanvasInspector вдруг ресурс еще и канвас собирает. Если собирает, то в описании к CanvasInspector все написано, как действовать.
https://wiki.bablosoft.com/doku.php?id=perfectcanvas