Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MYSQL] Upload plików, Jak ograniczyć ilosc plików na usera?
Twist
post
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?
Go to the top of the page
+Quote Post
bregovic
post
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
Go to the top of the page
+Quote Post
bliitz
post
Post #3





Grupa: Zarejestrowani
Postów: 155
Pomógł: 12
Dołączył: 5.04.2008

Ostrzeżenie: (0%)
-----


Cytat(bregovic @ 5.11.2008, 10:17:32 ) *
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ń.


--------------------
Go to the top of the page
+Quote Post
bregovic
post
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
Go to the top of the page
+Quote Post
Pilsener
post
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.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 09:05