Пожалуйста, оцените решение (защита от повторных сообщений).

RU
На сайте с 08.12.2008
Offline
9
707

Сабж.

Создаем сессию $_SESSION['mess'] = rand( 0, 1000 );

В форме <input type="hidden" name="nodub" value=($_SESSION['mess']) />

Публикуем первое сообщение от пользователя и опять $_SESSION['mess'] = rand( 0, 1000 );

Ловим повторное сообщение if( $_POST['nodub'] <> $_SESSION['mess'] ) $err = 'повтор';

Борьба против любителей жать F5 (как ни странно любителей очень много :) )

P.S> надеюсь всё понятно, если что спрашивайте)

доступный способ для оплаты ваших услуг (http://www.smsdostup.ru/3137/) Дивная верстка за $10 (/ru/forum/324509)
deepslam
На сайте с 09.05.2006
Offline
204
#1

Удобно, хорошая идея.

Удаление вирусов на сайте (http://www.virusonsite.ru) | Scripto CMS - бесплатная система управления сайтом (http://www.scripto-cms.ru) |Профессиональный скрипт каталога ссылок , статей, фирм и объявлений! (http://www.scripto.ru) | Уникальный скрипт для публикации контента (http://publisher.scripto.ru)
[Удален]
#2

Можно проще: после сохранения записи делать

header('Location: {урл например этой же страницы или страницы со списком комментов}');exit;

После этого хоть зазажимайся F5 - обновляться будет уже другая страница и никакие данные никуда не пересылаются :)

RU
На сайте с 08.12.2008
Offline
9
#3
nikitian:
Можно проще: после сохранения записи делать
header('Location: {урл например этой же страницы или страницы со списком комментов}');exit;

После этого хоть зазажимайся F5 - обновляться будет уже другая страница и никакие данные никуда не пересылаются :)

скорей всего IE всё таки отошлёт (осёл как ни как :D ).. но надо попробовать)

Real-Unior добавил 26.01.2009 в 23:52

deepslam:
Удобно, хорошая идея.

единственное, что cookes должен быть включен, иначе пропустит ( но я хочу это использовать для авторизованных пользователей, тоесть авторизация это почти гарантия на включеный приём пиченег :) )

[Удален]
#4
Real-Unior:
скорей всего IE всё таки отошлёт (осёл как ни как :D ).. но надо попробовать)

Не будет, т.к. обновляется открытая страница, а не введённая.

RU
На сайте с 08.12.2008
Offline
9
#5
nikitian:
Не будет, т.к. обновляется открытая страница, а не введённая.

точно) всё окей) отличное решение)

CyberX
На сайте с 08.03.2008
Offline
51
#6

Интересные идеи, а вот от двойного клика как спастись ?

Шустрый хостинг (http://www.colocat.ru) за нормальные деньги (Москва). 30 дней тестовый период. Рекомендую копирайтера aronskaya (/ru/users/73753). Отличные авторские тексты.
edogs software
На сайте с 15.12.2005
Offline
775
#7

Есть редковато применяемое решение, выгодное с 4 точек зрения

Пихать в каждую форму юзеру uniqueid, валидный только на 1 пост запрос.

В чем бонусы

1) Можно не перезагружать страницу юзеру, не мучая его редиректом.

2) Нет лишнего редиректа, нет лишней загрузки полной страницы, серверу хоть чутка но полегче.

3) Чутка становится лучше по безопасности, т.к. примется только мессага с уникальным ИД, которое сайт сам выдал юзеру (на левых сайтах уже формочки не пройдут).

Это не спасет от одинаковых сообщений как таковых, но спасет от сообщений из одной формы, которые могут быть одинаковы.

4) Слегка помогает от спамеров, по причине пункта 3. Т.к. некоторые спам-боты тупо постят стандартные данные в форму из своей базы, а не сканируют форму каждый раз.

Непосредственно от посылки одинаковых сообщений, спасает банальная проверка на такое же сообщение от юзера в течении предыдущих Х минут (или просто в этом же топике от него же).

По ситуации - можно или склеивать с предыдущим (при условии что запощено в тот же топик) или просто не пропускать.

P.S.: От двойного клика так же есть смысл в любом случае "защищаться" яваскриптом, делая кнопку субмита неактивной сразу после клика на ней. Это конечно не защита, но тоже бывает полезно.

Разработка крупных и средних проектов. Можно с криптой. Разумные цены. Хорошее качество. Адекватный подход. Продаем lenovo legion в спб, дешевле магазинов, новые, запечатанные. Есть разные. skype: edogssoft
T.R.O.N
На сайте с 18.05.2004
Offline
314
#8
Real-Unior:
Борьба против любителей жать F5

AJAX. Сейчас уже работает везде. реализуется просто. проблем с F5 не имеет, как и со многим другим. Юзабельность выше.

От воздержания пока никто не умер. Хотя никто и не родился! Prototype.js был написан теми, кто не знает JavaScript, для тех, кто не знает JavaScript (Richard Cornford)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий