![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| Arantir |
|
|||
|
Рыбак без удочки ![]() ![]() Профиль Группа: Участник Сообщений: 960 Регистрация: 18.11.2012 Репутация: 16 Всего: 55 |
Почему именно каптча? Защита от роботов? Страница с кучей форм на всеобщем обозрении?
Есть такая штука - токен. Используется, в частности, для предотвращения CSRF. Делает 3 вещи: гарантирует, что форма отправлена с предыдущим ее получением с сайта (токен генерируется при генерации страницы); что форма отправлена в той же сессии (токен хранится в сессии); что эта же форма не будет обработана второй раз (при получении токена он аннулируется). В частности, как следствие, при открытии новой вкладки старая вкладка делается невалидной. Оной способ можно модифицировать: Генерировать токен только при отсутствии его в сессии. Хранить токены по именам полей в форме. Время жизни токена добавить по вкусу. Получается следующее: При открытии страницы на каждое скрытое поле с токеном генерируется токен. При открытии еще одной вкладки все токены те же самые, взяты из сессии. При получении формы ее токен аннулируется. При открытии еще одной вкладки все формы по прежнему валидные, но у ранее отправленных уже новые токены. Можно открыть столько вкладок, сколько форм и с каждой по очереди отправить каждую следующую форму. Одну и ту же форму с двух вкладок отправить невозможно (токен для формы только один и он одноразовый). Милый бонус - формы в чистом виде, без лишний полей в виде каптч. А для защиты от роботов на всю страницу всучить одну единственную каптчу где-то вверху/внизу и все... Это сообщение отредактировал(а) Arantir - 19.7.2013, 02:30 -------------------- interface Жопа { // ATTENTION: has to be implemented by every class of the project for proper project work } |
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
Потому, что в техзадании написано - для нерегистрированного юзера, формы защищаются капчей. Не обсуждается и не лечится Да, это такой макет. Тоже не лечится. Сам сайт - ненагруженный, нераскручиваемый. По содержанию, периодически устраиваемые узкопрофильные конференции, пара страниц + новости. регистрация участников на очередную конференцию (бывает несколько одновременно) на сайте прямо на главной. Это реальный пример из реального проекта. Я понимаю, что можно придумать более удобные средства проверки, но пока рисуются такие макеты - летаем на том, что нарисовали. Про токен - в теперешней реализации - оказывается он есть у меня. Ежели про теорию. Нормальное, imho, устройство защиты сайта капчей - это капча, появляющаяся раз в 5 минут при очередной отсылке формы с сайта. Формально, каждая форма имеет капчу. Просто при проверке первой формы устанавливается в сессии флажёк - `капчу не проверяем 5 минут`, выставляем куку и с каждой формы сайта по куке скрываем поле с капчей. По истечении времени - показываем (в куке написано время). -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
Воткнул в рабочий проект, полет пока нормальный.
собственно класс пример использования Сам проект на github. Из принципиальных плюсов - картинка не перерисовывается при перерисовке страницы. Из тонких моментов -- информация о конфигурации капчи хранится в сессии. Это позволяет не подключать окружение сайта при генерации картинки. -- 2 режима работы файла - поставщик класса в систему и генератор картинки. -- использование htaccess обязательно. -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| Sanchezzz |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1670 Регистрация: 19.11.2006 Где: Voronezh Репутация: 41 Всего: 60 |
Хотел посмотреть на гите а там фейк)
-------------------- Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS. |
|||
|
||||
| ksnk |
|
||||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
Блин! При входе на гит мне тамошний робот говорит про
Че это он? Если я захожу с компьютера, с которого не ходил в гугл, то тоже показывает 404 страницу. :( Вступил в переписку с роботом, может что умное расскажет. Вот, пример использования, раз уж такая пьянка
оно же на тестовом сайте Это сообщение отредактировал(а) ksnk - 25.7.2013, 14:38 -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
||||
|
|||||
| Sanchezzz |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1670 Регистрация: 19.11.2006 Где: Voronezh Репутация: 41 Всего: 60 |
Я первый раз вижу что бы акк блокировали
Ты наверное быстро комиты отправляешь. Так да, вроде хорошо получилось -------------------- Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS. |
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
Разблокировали гитхаб. Не прошло и 3х дней. Что было - не объясняют, сорри, типа, ошибочка вышла. Ну да и ладно.
Можно смотреть сам проект, если интересно. -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |