![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 174 Pomógł: 11 Dołączył: 12.10.2008 Skąd: Dublin Ostrzeżenie: (0%) ![]() ![]() |
Witam! Mam na stronie skrypt ktory sprawdza isset($_SESSION['login']) i jesli tak to wyswietlaformularz uploadu. Jak zebezpieczyć skrypt przed floodem? Niech każdy user ma przydzielony limit np. 5 uploadów dziennie. Wtedy do bazy dodałbym pole "uploadcount" i default 5. Przy kazdym uploadzie zmniejszałaby się o 1. OK, ale jakw takim przypadku zrobic automatyczne "przyjmowanie wartosci domyślnej" po 24h? Moze sa jakieś prostsze/ciekawsze rozwiązania?
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 562 Pomógł: 15 Dołączył: 8.08.2003 Skąd: Denmark/Odense Ostrzeżenie: (0%) ![]() ![]() |
Ja bym dodał pole upload_date i sprawdzał czy data jest dniem dzisiejszym. Jeśli nie, to wyzerowałbym licznik. Tak jest chyba najprościej.
-------------------- Prank - for the fun. Mac - for the simplicity. Deviantart - for the kick.
Life is ours, We live it our way -- Metallica |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 155 Pomógł: 12 Dołączył: 5.04.2008 Ostrzeżenie: (0%) ![]() ![]() |
Ja bym dodał pole upload_date i sprawdzał czy data jest dniem dzisiejszym. Jeśli nie, to wyzerowałbym licznik. Tak jest chyba najprościej. Jeśli użytkownik ma 24h to ten pomysł się nie sprawdzi bo mógłby wysłać pierwszy plik o 16, chyba że ma nie 24h a jeden dzień. -------------------- |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 562 Pomógł: 15 Dołączył: 8.08.2003 Skąd: Denmark/Odense Ostrzeżenie: (0%) ![]() ![]() |
Ok, fakt, to był klasyczny przykład brain-freeze z mojej strony. Ale można to wciąrz rozwiązać w podobny sposób. Pole upload_date zawierający albo PHP'owski timestamp albo datetime, i update'ujesz je tylko jeśli update_time+24h < teraz. Pseudokod:
Kod if user[upload_count] < 5
// upload ok // upload_count ++ elseif user[upload_date] + 24h < now // upload ok // set upload_count = 1 // set upload_date = now else // upload not ok. Ten post edytował bregovic 5.11.2008, 12:18:17 -------------------- Prank - for the fun. Mac - for the simplicity. Deviantart - for the kick.
Life is ours, We live it our way -- Metallica |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
Zależy, co rozumiesz przez ten flood - czy to ma być zabezpieczenie przed wysyłaniem dużej liczby plików czy dużego rozmiaru plików? Czy wystarczy zwykłe zabezpieczenie formularza przed F5? Ja bym dodał limit rozmiaru na jednostkę czasu, np. 2MB na godzinę - ale to już od Ciebie zależy. Może być kilka ograniczeń - np. nie więcej niż 2MB na godzinę i 10 plików.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 09:05 |