Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> zebezpieczenie przed floodowaniem z wykorzystaniem sesji
bleze
post
Post #1





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 1.01.2007

Ostrzeżenie: (10%)
X----


Nie znam się za bardzo na sesjach dlatego proszę Was o pomoc.
Jak za pomocą sesji, time() oraz IP zablokować wysyłanie formularzy przez jednego użytkownika w krótszym czasie niż 30 sekund?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
bim2
post
Post #2





Grupa: Zarejestrowani
Postów: 1 873
Pomógł: 152
Dołączył: 9.04.2006
Skąd: Berlin

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


Hmm, ale chyba zamierzasz pokazać obiekt sesji? Albo obiekt formluarzy? Zobacz na dział forum.
Go to the top of the page
+Quote Post
bleze
post
Post #3





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 1.01.2007

Ostrzeżenie: (10%)
X----


a.php:
  1. <FORM id="form" method="post" action="comments.php?id=139">
  2. <b>Imię/nick:</b><BR><INPUT name="name" type="text" size="25" maxlength="15"><BR>
  3. <DIV id="iloscZnakow"><b>Twój komentarz:</b> (wpisanych znaków 0<script>document.write(parseInt(document.forms[0].opis.value.length))</SCRIPT>/500)</DIV>
  4.  
  5. <TEXTAREA onFocus="iloscZnakow(this)" onBlur="skoncz(this)" style="overflow:auto" name="message" rows="5" cols="45"></TEXTAREA>
  6. </FORM><button onclick="SendRequestForm()">Dodaj komentarz</button>


comment.php:
  1. <?
  2. $id = $_GET[id];
  3. $message=$_POST['message'];
  4. $name=$_POST['name'];
  5. $message = htmlspecialchars($message, ENT_QUOTES);
  6. $name = htmlspecialchars($name, ENT_QUOTES);
  7. $message = str_replace("r\n", " ", $message);
  8. $name = str_replace("r\n", " ", $name);
  9. $message = str_replace("
  10. ", " ", $message);
  11. $name = str_replace("
  12. ", " ", $name);
  13. if ($name == FALSE) {$name="Anonim";}
  14.  
  15. $message = iconv("utf-8","ISO-8859-2",$message);
  16. $name = iconv("utf-8","ISO-8859-2",$name);
  17.  
  18. $znaki = strlen($message);
  19. if ($znaki<=500 && $znaki !== 0) {
  20.  
  21. if ($message)  
  22.    {
  23.    $date = date("Y-m-d H:i");  
  24.    $message = "$name|$date|$message\n";  
  25.    #$fp = fopen ("comment/$id.comment", "a");  
  26.    $fp = fopen ("comment/" . $id . ".comment", "a");
  27.    fwrite ($fp, $message);  
  28.    fclose ($fp);
  29. echo "<div style='color:green'>Komentarz dodano!</div>";
  30.    }
  31. }
  32. else {
  33.  
  34.    if ($znaki>=500) {echo "<div style='color:red'>Twój komentarz musi mieć mniej niż 500 znaków!</div>";}
  35.  
  36.    else { echo "<div style='color:red'>Musisz wpisać jakiś tekst!</div>";}
  37.  
  38.    echo "<FORM id=\"form\" method=\"post\" action=\"comments.php?id=".$id."\">  
  39. <b>Imię/nick:</b><BR><INPUT name=\"name\" type=\"text\" size=\"25\" maxlength=\"15\"><BR>  
  40. <DIV id=\"iloscZnakow\"><b>Twój komentarz:</b> (wpisanych znaków 0<script>document.write(parseInt(document.forms[0].opis.value.length))</SCRIPT>/500)</DIV>
  41. <TEXTAREA onFocus=\"iloscZnakow(this)\" onBlur=\"skoncz(this)\" style=\"overflow:auto\" name=\"message\" rows=\"5\" cols=\"45\"></TEXTAREA>
  42. </FORM><button onclick=\"SendRequestForm()\">Dodaj komentarz</button>";
  43. }
  44. ?>


Ten post edytował bleze 26.12.2008, 16:33:18
Go to the top of the page
+Quote Post
Cypherq
post
Post #4





Grupa: Zarejestrowani
Postów: 181
Pomógł: 9
Dołączył: 28.08.2006
Skąd: Katowice

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


Nie wystarczy 30 sekundowe ciasteczko utworzyć i sprawdzać czy istnieje przy dodawaniu komentarzy? :|
Go to the top of the page
+Quote Post
bim2
post
Post #5





Grupa: Zarejestrowani
Postów: 1 873
Pomógł: 152
Dołączył: 9.04.2006
Skąd: Berlin

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


Nigdzie nie widzę obiektów, a co dopiero wyrazu class... Po kiego grzyba wrzucałeś to do tego działu? Proszę wyjaśnij mi motywy bo nie rozumiem. Wierze, że ktoś się może machnąć Przedszkole Php, albo Giełda ofert Przedszkole, ale Programowanie obiektowe które jest poddziałem i widać, że to już coś trudniejszego? Wytłumaczysz mi bo nie zasnę. Proszę.
Go to the top of the page
+Quote Post
bleze
post
Post #6





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 1.01.2007

Ostrzeżenie: (10%)
X----


w takim razie proszę o przeniesienie tego tematu do odpowiedniego działu.
sorry, niedokładnie przeczytałem nazwę tego działu i dlatego go tu umieściłem, śpij spokojnie bim2.
Go to the top of the page
+Quote Post
memory
post
Post #7





Grupa: Zarejestrowani
Postów: 616
Pomógł: 84
Dołączył: 29.11.2006
Skąd: bełchatów

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


Prosze o przeniesienie do odp dzialu

rozwiazanie

  1. <?php
  2. function  flood() {
  3. if($_SESSION['last_session_request'] > time() - 30){
  4.  
  5.   echo "<br />Flood,Pomysl zanim napiszesz!";  //tutaj co chcesz
  6.   exit;
  7. }
  8. $_SESSION['last_session_request'] = time();
  9.  
  10.  
  11.  
  12. }
  13. ?>


Ten post edytował memory 26.12.2008, 20:10:49
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 25.12.2025 - 03:07