Всего 123 788 комментариев

Денис Усманов
28 апреля 2023, 16:02
-1
Могу дать развёрнутое объяснение по данной задаче, напишите мне в ЛС в ТГ (указан в моем профиле). После обсуждения в ЛС, могу сюда сам или Вы самостоятельно напишите, какое я предлагаю решение. И скажу заранее, возможно mSync приобретать даже не обязательно…
Руслан Алеев
28 апреля 2023, 13:15
0
В FormIt есть встроенная защита от спама, в виде математического уравнения, см. docs.modx.com/current/ru/extras/formit/formit.hooks/math Но мало видел, что ее используют, хотя, думаю, что нормально работает.
Эдуард
28 апреля 2023, 13:00
0
На многих сайтах я делал простой append (точнее prepend) в форму с фиксированной строкой, не заморачивался с генерацией случайно строки.
Спама было мало, но тоже подтверждаю на некоторых сайтах спам-боты пробивали и сыпался спам, тут как повезет. Так как способ простой, то ставил в формы по умолчанию на все сайты. Защищает от ботов, которые не умеют в JavaScript (интересно много таких сейчас?)
Денис Усманов
28 апреля 2023, 10:04
0
Тоже хотел сделать именно при наведении, но решил, напишу сначала простенькую статью. А там глядишь люди дадут хорошие советы, и я перепишу статью… Благодарю! За это утро, мне уже несколько человек дали хорошие решения, которые я обязательно тут покажу!
Константин Ильин
28 апреля 2023, 10:00
+1
Если вкратце у меня работает так (Подсмотрено у Артур Шевченко, спасибо ему)
1. тоже генерируется рандомная строка
2. тоже проверяется через contains
3. и полю nobot эта рандомная строка присвоится только(!) при наведении на форму, а у вас как я понял сразу.

У меня полет нормальный
{set $secret = md5(rand(0,999999999))}
{'!AjaxForm' | snippet :[
    ....
    'secret' => $secret ,
    'validate' => 'vscval:contains=^'~$secret~'^'
    ....
]}

//В форме
<input type="hidden" name="vscval" style="display:none" data-vscval="{$_pls['secret']}">

//Js
function watchForms(){
    if(document.querySelector('form')){
        document.querySelectorAll('form').forEach((ff) => {
            ff.addEventListener('mousemove', (e) => {
                if(ff.querySelector('input[name="vscval"]')){
                    let inpSecret = ff.querySelector('input[name="vscval"]'),
                        inpSecretData = inpSecret.getAttribute('data-vscval');
                    if(inpSecret.value == ''){
                        inpSecret.value = inpSecretData;
                    }
                }
            });
        });
    }
}
watchForms()
Андрей Степаненко
28 апреля 2023, 09:24
0
Есть отличная статья на мой вгляд
Показывает что сейчас произошло с GPT
habr.com/ru/articles/727092/

Процесс идет и его не остановить)
Александр Мельник
28 апреля 2023, 09:04
+2
И в ваших словах есть правда.
Видимо мир вообще устроен циклически. Мы сначала изобретаем технологии, чтобы нам проще жилось, а затем технологии отупляют нас и уничтожают.
Ведь получается, что через какое то количество лет и правда появится профессия «оператор чатбота», цель которого будет уже не написание кода, а формулировка правильных вопросов. И тогда человек вообще разучится программировать. Как мы уже разучились считать, после того как изобрели дешевые калькуляторы. Моей маме 80 лет и она прекрасно в уме умножает 3 значные числа, А на листке в столбик может делить огромные числа. А я уже не могу. Чтобы умножить 23 на 56 лезешь за калькулятором. Или когда телефоны были стационарные, я помнил около 30 номеров — друзья со школы, другие важные номера. КОгда появились мобильные и их телеонные книжки — я с трудом вспоминаю свой номер телефона, не говоря уже о 30 других. Мы, как человеческий вид (ну хорошо, не буду говорить мы, скажу — я) тупеем, и это плата за использование технологий.
У Айзека Азимова есть фантастический рассказ, как люди в 2100 году заново изобретали таблицу умножения, видимо фантаст был прав)
Чтобы разорвать этот круг нужно остановится в какой то точке. Вот вы пишите, может гугл запретить. А было бы неплохо. По краней мере для программистов, чтобы гугл предоставлял доступ только к документации. А не к чужому коду и прочему. Хочешь чтото написать — будь добр изучи и напиши.
Но понятно что это мои фантазии…
Андрей Степаненко
28 апреля 2023, 09:01
0
Надо незабывать что есть ответственность, тестировани, отладка
Чем программисты как правило пренебрегают

Вот задача:
Написать скрипт вывода даты

А где здесь написано что его тестировать нужно????????
Проект менеджеры и другие постановщики задач глюбоко ошибаются в том что программист будет тестировать свой код
Они хотят конфетку готовую
Не зря существую тестироващики

Это как с заводом по производству машин
Инженеры делают свою работу
Менеджеры делают свою работу

Так достигается симбиоз полноценной работы: но в мире программирования почему то мнение у большенства что программист может и сплесать и спеть и покушать принесет
Константин Ильин
28 апреля 2023, 08:59
0
Оо здравствутйе! Я думал вы пропали совсем и даже сильно не надеялся на ответ)

Тенденция такая сейчас, что все компоненты переходят на чистый js. Меня тоже сподвигло перейти на чистый js, около полугода пишу. В начале было не очень) Ну и помимо тендеции это лишняя подключаемая библиотека, например у меня на сайте нигде нет jQuery и тут его придется подключить.
Версия что сейчас в репозитории меня многим не устраивает и выпилить джеквери и переделать запрос по плиточкам по факту ничего кардинально не изменит.
Расскажите что не так и какие планы в целом?

мне примерно через месяц понадобится msOptionsPrice2, и не хотелось бы попасть в ситуацию когда купил msOptionsPrice2 и на след день вышла msOptionsPrice3.

И в целом для магазина три основных компонента, miniShop2, mSearch2, msOptionsPrice2. Если miniShop2 развивается нет нет, то последние два «отстают», извините меня за душноту опять же оба подключают jQuery.
Андрей Степаненко
28 апреля 2023, 08:55
-1
В современном мире разработчик вообще перестал думать, что програмирование это вообще то сложно.
Это люди такие)) А не разработчики как профессия
Тебе постоянно нужно учиться если ты профессионал и хочешь подтверждать свою квалификацию

Но очень много людей которые достигли чего то и сели на жопу
Андрей Степаненко
28 апреля 2023, 08:52
0
Есть другие истории)))

Надо мне сегодня было написать скрипт который бы брал файлы и отправлял их на email
Я 100% могу это сделать, но потрачу на это пару часов так как с bash не очень знаком
боту написал задачу, Выдал готовый код
#!/bin/bash

# Получаем email из первого аргумента
email="$1"

# Находим самый свежий файл  jpg
crt_file=$(ls -t /home/dir/*jpg | head -n1)

# Находим самый свежий файл png
key_file=$(ls -t /home/dir/*png | head -n1)

# Проверяем, что оба файла существуют
if [ ! -f "$crt_file" ] || [ ! -f "$key_file" ]; then
  echo "Ошибка: файл не найден"
  exit 1
fi

# Отправляем оба файла на указанный email
echo "Отправка файлов $crt_file и $key_file на $email"
echo "Текст письма" | mailx -s "Тема письма" -a "$crt_file" -a "$key_file" "$email"
Если ты профессионал программист то прекрасно понимаешь сколько времени тратиться на рутину которую ты 100% можешь выполнить
От этой рутины руки опускаются, а если есть кому вопрос задать и получить какую то информацию, то мочему бы и нет

Если уж на то пошло))
А давай те google запретим))) Чтобы не искать там информацию и будем книжками пользоваться
Александр Мельник
28 апреля 2023, 08:39
0
Знаете, я разуверился в возможности написания «атоматического» спамбота, когда не так давно произошло следующее.
Возникла на работе задача сделать быстрое решени по переносу сайтов с одного места в другое.
Как ее решал я — писал bash скрипты, которые по ssh выполнли создание архивов, дампы баз, потом подключались на другой сервер, туда все копировали, проводили постобработку типа сброса кеша, замены путей в файлах конфигураций и так далее.
Как ее решил мой коллега. Написал на jave программу которая тупо запускает браузер и в нем полностью имитирует все действия человека. Тоесть его программа сначала вошла на хостинг откуда нужно перенести, сама там авторизовалась, сама преешла на нужные страницу в панели хостинга, создала архивы, как это делал бы человек, скачала их. ПОтом авторизовалась на другом хостинге и там создала новый сайт, залила туда архив и так далее. Все это визуально у тебя перед глазами, ты только сидишь и смотришь.
И тут я понял, что при таких возможностях, нет никаких разумных способов отличить бота от человека. Только задавать вопросы боту, на которые ему будет сложно ответить.
Денис Усманов
28 апреля 2023, 08:31
+1
Согласен, случайная строка по сути тут как заготовка для более правильного решения… На днях буду прорабатывать этот момент.
Александр Мельник
28 апреля 2023, 08:29
0
но согласитесть, нет разницы, будет в каждой форме в этом инпуте написано одна и таже строка (value='hello world') или генерируемая каждый раз разная строка — на антиспам это не должно влиять. Ведь валидатор проверяет только факт заполненности этого поля.
Александр Мельник
28 апреля 2023, 08:19
0
Приведу пример, почему у меня слегка негативное отношения к чрезмерному использованию интернета и тем более всяких чатов на ИИ в разработке.
Есть коллега, который всегда предлагает самые безумные решения. К примеру, собираемся разрабатывать сложный проект, в сжатые сроки, мы разрабатываем бэк на php. Он же выступает с предложением, а давайте на python. Все такие — как так, никто не умеет python, зачем. Спрашиваем — у вас есть опыт работы с этим языком, говорит нет. Так чего ради все будут сложный проект начинать на совершенно неизвестном языке — ответ. Да что там сложного, все можно нагуглить.
Или аналогичный пример. Этот же человек вдруг посмотрел видео на ютубе и решил, что теперь нужно использовать везде graphQL вместо restapi у нас. Потому что в видео сказали, что это круче. И все, этого достаточно.
В современном мире разработчик вообще перестал думать, что програмирование это вообще то сложно. Что ты должен и мозг затачивать и тренировать определенным образом, и память. Что ты должен учить книги по 600 страниц чтобы разобраться в регулярных выражениях на высоком уровне. Никто не хочет этого делать, все говорят — да нафик, мы пойдем нагуглим. ВОзьмем куски чужого кода, а если возникнут проблемы, зададим вопрос на stackoverflow.
На днях случайно попросил одного человека кое что исправить в своем же коде на js, при открытом экране в скайпе. И человек не смог. Он даже не знает как правильно пишется addEventListener поскольку редактор все время сам ему подсказывает. И это человек с высшим образованием программиста. Без доступа к интернету никто уже не может программировать, потому что се данные не у тебя в голове, а в гугле.
Поэтому в целом, я негативно отношусь к чрезмерному использованию современных технологий в нашей работе.
Денис Усманов
28 апреля 2023, 08:15
0
В целом, данный способ ещё на стадии проверки и доработки. Использую его в связке с Google reCaptchaV3.
Денис Усманов
28 апреля 2023, 08:13
0
Смысл генерации только в попытке защититься от не очень продвинутых ботов, для которых такой способ защиты непреодолим…
Денис Усманов
28 апреля 2023, 08:12
0
Я согласен с сомнительностью защиты, но как меня уверили, он работает. Я тоже, считаю, что генерация случайной строки на фронте не защитить от серьёзных спам-ботов.
Надеюсь в ближайшее время, улучшить способ защиты перенеся проверку случайной строки полностью на сторону сервера, пока думаю как это сделать…
Александр Мельник
28 апреля 2023, 08:01
0
Лично у меня очень неоднозначное отношение к этим новым технологиям и чат-ботам. Но уже ничего не поделаешь и прийдется учиться жить с ними.
Вы имете ввиду, что бота можно попросить «напиши мне быстрый сеофильтр» для modx 2.8.5 без minishop как просит мой сеошник Роман? )) Врядли.
Мои попытки поиграться с chart-gpt показали что для генерации сложного кода он пока еще не подходит, максисм решение «классических» задач и алгоритмов — типа напиши оптимальный алгоритм вычисления чисел Фиббоначи или сортировку пузырьком.
Да и вообще, разработчик, если он называется программистом, должен быть хардкорным — только документация и только твой ум. Этого достаточно для решения любых задач. А иначе нас нужно будет переименовывать из разработчиков в «оператор чатбота» )