![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| KonstRuctor |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 245 Регистрация: 31.3.2006 Где: Россия, Санкт-Пет ербург Репутация: нет Всего: нет |
Привет всем!
Есть форма загрузки фотки, можно загружать фото только вошедшим юзерам, и только 1 раз в 24 часа. Что-то в моем скрипте есть сбой, который позволяет эту защиту обойти. Как? Не пойму. Где копать: в скрипте проверки, али вообще в классе авторизации? На локальной машине, да и на реальном сайте мне обойти скрипт не удается -- работает верно. А вот некоторые юзеры обходят, однако... Приведу пока мой скрипт проверки, может дело в нем. Итак:
Где искать ошибку? Спасибо |
|||
|
||||
| Рыжий |
|
||||
![]() Помешанный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1423 Регистрация: 19.9.2004 Репутация: 2 Всего: 20 |
KonstRuctor, Как-то ты странно дату проверяешь.
Я так понимаю дата хранится в формате varchar/timestamp? Ну это хорошо, преобразовываем его в UNIX-время, а дальше я бы сделал:
Код писал прямо тут, поэтому могут быть ошибки, но смысл я надеюсь понятен. |
||||
|
|||||
| Wolf1994 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 5.10.2004 Репутация: 7 Всего: 29 |
Не вижу сложности в обходе защиты. Если не перезагружать страницу, а кликнуть в браузере на "возврат" / нажать на BackSpace, то форма повторно загрузится из кэша и можно будет закачать ещё одну фотку. Защищать нужно не только форму, но и е обработку.
Это сообщение отредактировал(а) Wolf1994 - 23.12.2008, 16:42 |
|||
|
||||
| KonstRuctor |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 245 Регистрация: 31.3.2006 Где: Россия, Санкт-Пет ербург Репутация: нет Всего: нет |
У меня такой алгоритм:
1) Юзер вошел под своим именем? -- показываем форму 2) Все поля заполнены верно? -- аплоад фотки + запись в базу (дата, имя файла, user_id, название фотки) 3) запись в базу успешная?
В файле thankyou.php мы говорим юзеру "спасибо" и кидаем его автоматом к его фоткам:
ВОПРОС: при такой логике можно ли нажатие кнопки BACK браузера добавлять 10000 фоток в обход моей защиты? |
||||
|
|||||
| Wolf1994 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 5.10.2004 Репутация: 7 Всего: 29 |
Если непосредственно при upload'e не проверяется дата, то можно загрузить сколько угодно фотографий.
|
|||
|
||||
| KonstRuctor |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 245 Регистрация: 31.3.2006 Где: Россия, Санкт-Пет ербург Репутация: нет Всего: нет |
Вот ведь Ешкин кот
Реально выручил. Спасибо! Я думаю применить пери проверке метод, озвученный Рыжим. У него как-то короче все выходит. Лады. Спасибо! |
|||
|
||||
| Рыжий |
|
||||||
![]() Помешанный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1423 Регистрация: 19.9.2004 Репутация: 2 Всего: 20 |
Я бы сделал: 1) Юзер залогинился успешно? -- показываем форму 2) Все поля заполнены верно? -- идем к шагу 3, нет - заставляем заполнить все верно 3) Проверяем, имеет ли пользователь право добавлять фото? -- Если да: аплоад фотки + запись в базу (дата, имя файла, user_id, название фотки) 3) запись в базу+загрузка фото успешная? Далее - как у тебя. |
||||||
|
|||||||
| KonstRuctor |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 245 Регистрация: 31.3.2006 Где: Россия, Санкт-Пет ербург Репутация: нет Всего: нет |
В принципе у меня так и было сделано! Именно по такому алгоритму, кроме маленького "но":
проверка "может ли юзер загружать фото" была не там. Кстати, как я ни старался, ни ИЕ6,7, ни Оперой, Ни ФФ3, ни Хромом, ничем не смог моделировать нажатие кнопки BACK браузера!! Ни на локальном компе, ни на реально работающем сайте! Как говорит Wolf1994, можно загружать сколько угодно... ? Не выходит! Нажимаю Back, форму показывает заполненную, все -- кроме имени файла, само собой. Выбираем новый файл, жмем ОК, тут же скрипт выдает ошибку -- тот самый экран, на котором говорится сколько ждать. Ничего не понимаю. НО спасибо, я сделал вторую проверку на дату -- там, где у меня идет стандартная проверка заполненности полей. Теперь враг не пройдет! Такой алгоритм, как ты, Рыжий, предлагаешь мне замутить уже сложно... Там уже столько if -- else... вошел-нет, забанен-нет, есть фото в базе-нет, если есть, то свежие ли-нет... возникли ошибки-нет Брррр. Перелопачивать скрипт уже неохота! Спасибо. Тема почти закрыта, только интересно, что ж у меня кнопка BACK не пашет. |
|||
|
||||
| Wolf1994 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 5.10.2004 Репутация: 7 Всего: 29 |
||||
|
||||
![]()
|
| Правила форума "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. |