61. - 23 февраля 2018 — 22:55 - перейти к сообщению
Самое простое решение зачастую бывает самым действенным.
62. Bookkc - 25 января 2019 — 12:50 - перейти к сообщению
отлично! то что мне нужно
63. alex2k6 - 25 января 2019 — 13:07 - перейти к сообщению
Bookkc , Можете рассказать как это реализовать?Потому как ссылки у меня почему то не доступны. Т.е. даже не понятно как эта защита выглядит.
64. Bookkc - 25 января 2019 — 13:08 - перейти к сообщению
при регистрации вводится кодовое слово. защита от ботов отличная. за год ни один не прошел. сейчас новый форум ставлю с этой фичей
65. alex2k6 - 25 января 2019 — 13:14 - перейти к сообщению
Bookkc , А инструкция есть? Тему прочел. Но так и не понял, что именно надо делать
66. - 26 января 2019 — 08:28 - перейти к сообщению
alex2k6
Вот здесь посмотрите.
Вот здесь посмотрите.
67. Flat - 26 января 2019 — 11:39 - перейти к сообщению
А я делаю так, что юзерам вообще ничего вводить не придётся в том числе каптчу. О проблемах с каптчами что только не написано. Просто делаю скрытое поле для ввода(оно может быть любым). Бот обязательно его заполнит, что проверяется и если заполнено даём отворот поворот. Ну, а против людей-ботов ничего не поможет..
думаю, не нужно грузить пользователей дополнительными обязанностями. Всё надо делать скрыто силами самого скрипта.
думаю, не нужно грузить пользователей дополнительными обязанностями. Всё надо делать скрыто силами самого скрипта.
68. alex2k6 - 26 января 2019 — 11:44 - перейти к сообщению
Flat , Тоже хорошее решение. Спасибо
69. Yamaliya - 26 января 2019 — 12:28 - перейти к сообщению
Flat , простите за мой французкий, но ваше голословное хвастовство уже начинает раздражать.
Сделали что-то толковое? Покажите нам, оценим.
Просто поболтать зашли?
А я сделаю так, а я сделаю этак, а у меня лучше, а у вас всё не так...
А у вас то как???
Сделали что-то толковое? Покажите нам, оценим.
Просто поболтать зашли?
Flat пишет:
А я делаю так
А я сделаю так, а я сделаю этак, а у меня лучше, а у вас всё не так...
А у вас то как???
70. Flat - 26 января 2019 — 13:27 - перейти к сообщению
Yamaliya пишет:
Сделали что-то толковое? Покажите нам, оценим.
Просто поболтать зашли?
Просто поболтать зашли?
Yamaliya , честно говоря, я зашёл чтобы напомнить о существовании других, более дружелюбных пользователям путей.
Что касается того, что сделано, то долго вообще ничего не программировал в связи с психологическими проблемами, отсутствием мотивации и пр. Сейчас пришёл в норму и продолжаю делать форум практически с нуля. Регистрацию практически сделал. Точка входа через индексный файл. Много функций уже сделал. Общая структура форума определилась. Сделал активацию через мыло для подтверждения, но выкинул этот уже готовый модуль, оставив только регистрацию. На это есть определённые причины. Позже обьясню подробней. Сейчас всё идёт как по маслу. Раз уж взялся за гуж не говори, что не дюж.
Модули подключаются через общий список, поэтому злоупотреблений не будет.
Очень долго тестирование занимает, зато теперь вся регистрация, работает как часики. Файлы забаненых логинов, запрещённых слов при регистрации, статистики коонференции заполняются, а если какой-то служебный файл потеряется, то скрипт автоматически его создаёт на прежнем месте, так что админу облегчение. Ещё немного и практически готовое ядро будет, где можно будет создавать сообщения.
Скрытое поле у меня сделано так(можно переделать):
в шаблоне прописывается поле для ввода, в данном случае второго поля для пароля:
CODE:
<tr>
<td class="profilleft">
<b>
Пароль
</b><br />
<span class="desc">
Введите пароль. Имейте ввиду, что все пароли чувствительны к регистру. Можно использовать только такие символы: от a до z, от A до Z, и цифры. Минимум <b>8</b>, максимум <b>30</b> символов!
</span><br><br>
<input type="text" size="20" name="password1" maxlength="30">
</td>
</tr>
<tr id="hd">
<td class="profilleft">
<span class="desc">
Подтвердите пароль.
</span><br><br>
<input type="text" size="20" name="password2" maxlength="30">
</td>
</tr>
<td class="profilleft">
<b>
Пароль
</b><br />
<span class="desc">
Введите пароль. Имейте ввиду, что все пароли чувствительны к регистру. Можно использовать только такие символы: от a до z, от A до Z, и цифры. Минимум <b>8</b>, максимум <b>30</b> символов!
</span><br><br>
<input type="text" size="20" name="password1" maxlength="30">
</td>
</tr>
<tr id="hd">
<td class="profilleft">
<span class="desc">
Подтвердите пароль.
</span><br><br>
<input type="text" size="20" name="password2" maxlength="30">
</td>
</tr>
В файле css делаем запись:
CODE:
#hd { display: none; }
поэтому его не видно при регистрации.
зато видно боту.
В скрипте проверяем заполнено это поле или нет:
CODE:
if(!empty($_POST['password2']))
exit('Access denied!');
exit('Access denied!');
если заполнено, то выходим из скрипта с сообщением, хотя это и не обязательно.
Yamaliya , сейчас выкладываь весь код смысла нет.
(Добавление)
Yamaliya , вот практически готовый рабочий модуль регистрации тысячу раз протестированный Привожу чтобы вы имели представление что такое мой собственный дилетантский код:
Регистрация (Отобразить)
71. Yamaliya - 26 января 2019 — 14:24 - перейти к сообщению
Flat ,
Словосочетание бессмысленно. Модуль либо готовый и рабочий, либо в стадии доработки.
Есть без преувеличения протестированные моды, которые в общем доступе, и без излишнего зазнайства, и протестированы действительно тысячи раз!
Мне лучше замолчать и не вступать с вами в перепалку, ничего хорошего из этого не выйдет. Просто буду игнорировать ваши посты.
Flat пишет:
вот практически готовый рабочий модуль
Словосочетание бессмысленно. Модуль либо готовый и рабочий, либо в стадии доработки.
Flat пишет:
Кем? Вами? На каком форуме? Дайте попробую протестировать! тысячу раз протестированный
Есть без преувеличения протестированные моды, которые в общем доступе, и без излишнего зазнайства, и протестированы действительно тысячи раз!
Flat пишет:
сейчас выкладываь весь код смысла нет
Мне лучше замолчать и не вступать с вами в перепалку, ничего хорошего из этого не выйдет. Просто буду игнорировать ваши посты.
72. Flat - 26 января 2019 — 14:38 - перейти к сообщению
Yamaliya пишет:
На каком форуме? Дайте попробую протестировать!
Я тестирую на опен сервер на локальном компьютере. Когда будет готовое ядро создам форум на нём на реальном сервере, там и будем тестировать.
Я делаю форум с нуля и многое уже сделано.
Yamaliya пишет:
Просто буду игнорировать ваши посты.
А я нет..
73. Sigurni - 7 февраля 2019 — 13:33 - перейти к сообщению
Flat пишет:
Сейчас пришёл в норму и продолжаю делать форум практически с нуля.
Сколько раз вы его уже делаете с нуля? И всегда вот вроде бы уже "почти готово всё", "многое сделано", "тысячу раз протестировано", а потом опять с нуля...
Полностью поддерживаю Yamaliya, вы либо уже выложите здесь хоть что-то реально рабочее, либо не дразните почти в каждой теме пользователей.
Flat пишет:
В файле css делаем запись:
поэтому его не видно при регистрации.
зато видно боту.
CODE:
#hd { display: none; }
поэтому его не видно при регистрации.
зато видно боту.
Это защитит только от очень тупых ботов а-ля Xrumer по состоянию на 2012 год (к слову, более поздние его версии уже не заполняют такие поля). А новые решения, работающие на базе Selenium WebDriver, phantomjs, puppeteer прекрасно могут определять видимость полей.
З.Ы. Стиль кода в спойлере "Регистрация" просто жуть. Все файлы подключаются вручную (причём зачем-то ещё и в теле функции), а про autoload, видимо, автор не слышал. Глобальные переменные, судя по этому куску кода, по итогу в движке будут повсюду... Даже в 10-летних старых версиях ExBB нет такой дичи, как прямая работа с суперглобальными массивами входных данных ($_GET, $_POST) в контроллерах и уж тем более функциях.
74. Flat - 7 февраля 2019 — 14:50 - перейти к сообщению
Sigurni пишет:
Сколько раз вы его уже делаете с нуля? И всегда вот вроде бы уже "почти готово всё", "многое сделано", "тысячу раз протестировано", а потом опять с нуля...
Sigurni
С нуля это для души. Делать это буду долго. А вот для работы уже сейчас, уже некоторое время переделываю ExBB FM 1.0 RC1...
Зачем переделываю? Потому что, как я уже писал, во-первых, переделка ExBB на ооп была ошибкой, которая практически похоронила движок. Если раньше им могли заниматься непроффессиональные программисты-любители, то сейчас их просто не осталось совсем. А проффессионалы с этим вообще связываться НИКОГДА не будут..
Хотели блеснуть своим уровнем знаний? Блеснули? Молодцы!..
Sigurni пишет:
Полностью поддерживаю Yamaliya, вы либо уже выложите здесь хоть что-то реально рабочее, либо не дразните почти в каждой теме пользователей.
Вскоре, если всё пойдёт нормально, будет готовый движок. Очищенный от какого то ни было ооп.
От ООП я уже его очистил! Все функции получили префиксы и новые имена(очень похожие на старые)).
Темплейт тоже переделан полностью. Сейчас идёт очистка от нотисов. Когда этот этап будет закончен и форум будет работать(он уже и сейчас выводит главную страницу без нотисов и полностью сделан инсталлятор), то начнётся новый этап переделки.
Первое что надо сделать, это создать одну папку со всеми данными для лёгкого бэкапа! Об этом тут кто только не говорил!
Затем сделать подключение модулей через одну точку входа, через список модулей!
Ну и вменяемую легко читаемую базу. Пожалуй на первом этапе и всё - уже можно выложить готовый вариант.
Уже сейчас можно вдохнуть свободно! Уже нет этого уродства в скриптах и можно начинать жить..
Я перелопатил этот движок вдоль и поперёк.. И по ходу пьесы нашёл много недочётов..
Например, один такой недочёт есть в функции $fm->_GetVars().
В строчках:
CODE:
if (is_array($_GET))
и
CODE:
if (is_array($_POST))
Условия ВСЕГДА возвращают TRUE!
Правильно:
CODE:
if (!empty($_GET))
Настоятельно прошу заменить у себя.
Sigurni пишет:
Это защитит только от очень тупых ботов а-ля Xrumer по состоянию на 2012 год (к слову, более поздние его версии уже не заполняют такие поля). А новые решения, работающие на базе Selenium WebDriver, phantomjs, puppeteer прекрасно могут определять видимость полей.
Принято к сведению.
Sigurni пишет:
Стиль кода в спойлере "Регистрация" просто жуть. Все файлы подключаются вручную (причём зачем-то ещё и в теле функции), а про autoload, видимо, автор не слышал.
Я уже этот модуль переделал. Что там вам в стиле не нравится? Файлы подключаются не вручную, а через специальные функции. О каком автолоаде вы пишете?
Sigurni пишет:
Глобальные переменные, судя по этому куску кода, по итогу в движке будут повсюду... Даже в 10-летних старых версиях ExBB нет такой дичи, как прямая работа с суперглобальными массивами входных данных ($_GET, $_POST) в контроллерах и уж тем более функциях.
А сейчас разве не так? Класс-то синглтон! Там везде эмуляция глобальных идёт! Так зачем извращаться? Проще и намного оставить глобальные глобальными.
Так было с самого начала задумано. Почему отказались и пошли своим путём? Надо было с самого начала совершенствовать данную концепцию простого и понятного движка! А усложнили в угоду коммерции, имхо.. Я, просто, возвращаю всё на свои рельсы..
75. 1Bot - 8 февраля 2019 — 15:13 - перейти к сообщению
Flat пишет:
В строчках:
CODE:
if (is_array($_GET))
и
CODE:
if (is_array($_POST))
Условия ВСЕГДА возвращают TRUE!
Правильно:
CODE:
if (!empty($_GET))
Настоятельно прошу заменить у себя.
CODE:
if (is_array($_GET))
и
CODE:
if (is_array($_POST))
Условия ВСЕГДА возвращают TRUE!
Правильно:
CODE:
if (!empty($_GET))
Настоятельно прошу заменить у себя.
Если это не было изменено каким-либо образом, например
CODE:
$_POST = 'not array';
Обычно в целях защиты обнуляют пост данные, если например crfs-токен неправильный.