Гостевая, проблема защиты

newcss

Guest
Гостевая, проблема защиты

Здравствуйте !
Я с недавних пор изучаю PHP, даже не стал брать учебниКа в магазинЕ, решил через интернет. Учебник учебником... а вот проблемки есть.
Я вот решил написать гостевую книгу, уже даже работает, теперь передо мной стоит вопрос о ее защите.
Какие вещи нужно предусмотреть ???
Я реализовал систему проверки правильности e-mail, поставил защиту от баловства (слишком большие сообщения).

Данные формы отправляю я методом POST, идет обработка кода и если нажать F5 или обновить окно браузера, то сообщение то же самое запишеться снова, как этого можно избежать ? Множно ли глобальную переменную $_POST полностью очисить ? Если да, то как.
 

lucas

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

PHP:
header("Location: gb.php?" . time()) ;
updated.
Прощу прощения, опоздал.
 

newcss

Guest
Я уже реализовал сам.... в форме у меня полу hidden есть... там генерируется случайно число.... далее при обработки формы и если ненаходит ошибок скрипт то это число записывает в файл.... а при рефреше просто это число сравнивает со сгенерированным.... несоответсиве если, то форма не записывается...
 

newcss

Guest
Неправда... нажав кнопку назад пользователь попадет на страницу с гостевой.... А при нажатии кнопки повтора то просто обновится страница... Элементарно...
 

lucas

Guest
1. Последний аргумент. ;) Что легче: сделать один раз и в одном месте переадресацию или а) генерировать случайное число и записывать его в hidden-поле, заботясь о том, чтобы оно не совпало с уже записанными в файле; б) при получении форм сравнивать это случайное число с числами в файле; в) следить за своевременной очисткой этого файла; г) доставлять неудобства пользователям из-за черте-знает-откуда выскакивающих окон браузера?

2.
несоответсиве если, то форма не записывается...
А не наоборот?
 

Фанат

oncle terrible
Команда форума
нажав кнопку назад пользователь попадет на страницу с гостевой...
Назад не со страницы, на которую попадаешь постом, а со следующей. попробуй, и поймешь. Это быстрее, чем втолковывать тебе - Фоме неверующему.
А при нажатии кнопки повтора то просто обновится страница
Опять неправда.

Вся беда в том, что все здесь пишут неправильно.
Сделать локейшен после ПОСТА - это не защита, а естественное действие. Это надо делать всегда. Как раз, чтобы предотвратить описанные неудобства.
И ты поступаешь очень неумно, споря с людьми, которые тебе это советуют. Если это не защита, то это еще не повод не воспользоваться.

А защита - это как раз то, что ты написал. Все правильно ты придумал. Тем, кто с тобой спорит, надо не ПРОТИВОПОСТАВЛЯТЬ один метод другому, а сообразить, что они делают разное, и применять и то и другое.
 

lucas

Guest
Фанат

А защита - это как раз то, что ты написал. Все правильно ты придумал. Тем, кто с тобой спорит, надо не ПРОТИВОПОСТАВЛЯТЬ один метод другому, а сообразить, что они делают разное, и применять и то и другое.
ППКС.

newcss

Примененный тобой способ позволяет защитить гостевую книгу от флуда.
 

Tn

Guest
Все правда.., однако, то что написал newcss это тоже не лекарство от злонамеренного флуда, а пластырь - защита от неумышленного нажатия на refresh или на кнопку отсылки.

newcss:
Я уже реализовал сам.... в форме у меня полу hidden есть... там генерируется случайно число.... далее при обработки формы и если ненаходит ошибок скрипт то это число записывает в файл.... а при рефреше просто это число сравнивает со сгенерированным.... несоответсиве если, то форма не записывается...
А ты на каждого пользователя делаешь отдельный файл ? Иначе, пока пользователь1 будет заполнять форму, ее вызовет пользователь2, и случайное число пользователя1 уже не будет соответствовать ожидаемому в файле.

Если кто-то злонамеренно захочет засорить твою гост. книгу, то напишет скрипт, который вызовет твою форму, потом узнает случайное число найдя его в hidden-поле, потом отошлет запрос со своим флудом и случайным числом из файла. И запустит этот скрипт в цикле на ночь.
Если все так и есть, и я правильно понял как работает твой алгоритм, то тебе нужно сделать проверку не отсылаются ли данные от пользователя раньше чем через какой-то промежуток времени. И даже не отсылает ли он данные (они могут отличаться от предыдущих) уже N раз подряд (хоть и через промежуток времени).
 

Фанат

oncle terrible
Команда форума
А еще можно генерировать картинку с цифрами и просить их ввести.
Вот только я сильно сомневаюсь, что в эту книгу вообще будет кто-то писать, не говоря уже о том, чтобы ее флудить.
Тн, надо хоть немного же соображать.
Что это пишется гостевая книга, а не супермегапортал.
Хотя что это я. Забыл с кем разговариваю. С мегагероем, который сейчас кинется отстаивать полезность своего сообщения и будет трендеть, пока от него не останешь.
Так что извини родной, что помешал твоему креативному процессу, вещай дальше, специалист ты наш доморощенный.

Я, конечно, резковато выразился, и, по сути защиты от флуда ты, в общем, прав, но надо учитывать два момента.
1. Тут в этом форуме про защиту от флуда написаны тонны текста. Поэтому что-то дописывать бессмысленно. Кто умеет искать - найдет и без твоего, а кто не умеет - не увидит и подавно.
2. Всем любителям ставить супермегазащиту на гостевыекниги, надо их гостевые заспамить анекдотом про Неуловимого Джо. В воспитательных целях.
 

Tn

Guest
Фанат, согласись что это в который раз обвинение не по теме. Я уверен, что если бы написал, что защита гостевой книги ограничивается проверкой текущего поста с предыдущем, ты бы мне привел пару примеров, когда моя защита "сосет". И опять я был бы неправ.

Во-вторых, алгоритм который я описал, отнюдь и рядом не стоит по сложности с системой атомного реактора. И нет ничего сложного в проверке предыдущих постов если учесть, что гост. книга скорее всего будет написана с использованием SQL-БД, а поле даты поста в ней и так предусмотренно.

Я конечно, в этот раз культурно мало тренжу(дю), т.к. просто обомлел от такого обильного отсутствия оскорблений.
Кстате, твой сарказм на фоне пустого поста выглядит довольно глупо. Надо хоть немножко соображать, чем роль Петросяна отличается от роли Зрелого Специалиста. \m/
 

newcss

Guest
Tn

И что ? Зачем мне создавать на каждого файл ??? У меня гостевая книга, если бы в нее писали 100 каждую минуту, то нужно было бы подумать о чем-нибудь другом, а так, сообщение 1 в день в среднем.... ну 2-3.... и вероятность того, что они будут писать в одно и тоже время минимальна... тем более создается номер не в момент прихода посетителя, а в момент отправления........... И вовсе я не делал защиту от флуда, это специально от случайного нажатия
 

newcss

Guest
Tn

А если создавать защиту от флуда, то ее невозможно создать, кому нужно тот нафлудит, ведь есть програ которая меняет твой IP автоматически, куки чистяЦЦа и флуди или через анонимайзер.....
 

newcss

Guest
Tn

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

Tn

Guest
1. В этом форуме есть функция редактирования постов.
2. Тебя не поймешь. Перечитай свой вопрос заданный в первом посте "передо мной стоит вопрос о ее защите.
Какие вещи нужно предусмотреть ???". На него я пытался ответить.
Так же я написал, почему lucas неправ фразой "Примененный тобой способ позволяет защитить гостевую книгу от флуда."

3. Теперь ты говоришь, что твоя задача сделать код минимальным, тогда ответ lucas'a о редиректе после сохранения данных наиболее подходящий. Т.к. твоему методу (который во много раз сложнее), присущи те же проблемы, что и с редиректом, то видимо ты сделал не правильный выбор в поиске "максимального эффекта, с минимальным кодом".

А если создавать защиту от флуда, то ее невозможно создать, кому нужно тот нафлудит, ведь есть програ которая меняет твой IP автоматически, куки чистяЦЦа и флуди или через анонимайзер.....
Это вообще глупость. Давай те может вообще забьем на защиту от флуда, т.к. ты решил, что невозможно создать такой механизм. Тогда нам, наверно, придется забить на программирование без ошибок, защиту от взлома и прочего, т.к. всегда найдется, что-то где-то непредусмотренное ?

4. Как ты думаешь, я писал сюда, т.к. меня как-то волнует твоя книга или вопросы защиты от флуда в целом, которые я хотел обсудить ?

Вобщем Фанат правильно написал: "Тут в этом форуме про защиту от флуда написаны тонны текста. Поэтому что-то дописывать бессмысленно. Кто умеет искать - найдет и без твоего, а кто не умеет - не увидит и подавно."

Так что я закругляюсь, сложно общаться с теми кто тебя не слушает.
 

newcss

Guest
Tn


Сами просите прочитать почт снова мне свой. а сами его читали ??? Я ведь не только спрашивал про защиту от флуда, я т.к. новичок в программировании спрашивал о всевозможных казусах и хулиганствах какие могут сотворить любители побаловаться.......
 
Сверху