Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Kilka pytań poczatkujacego - bezpiencztwo i wydajnosc
gosciuuu
post
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 14.02.2013

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


Z góry chciałbym prosić o nie wysyłanie mnie do google czy manuala; zanim zdecydowałem się napisać tutaj przestudiowalem google i jednak nie znalazlem tego co chce; a czasem manual nie jest dla mnie wystarczajaco jasny.

PHP, MySQL znam dosc dobrze, natomiast nie mam dużego doświadczenia w (nazwijmy to) administracji. A konkretnie chodzi mi wydajnosc i bezpieczenstwo;


1. Pierwsze moje pytanie dotyczy baz dancyh, zastanawiam sie czy za duza liczba rows`ów w bazie (powiedzmy 10 kolumnowej po 50 znakow max) nie spowoduje czegoś złego. Tzn w skrócie mówiąc jaka liczba rowsow jest duza a jaka mala, co w sytuacji kiedy tych rowsow jest za duzo. Mam nadzieje ze mniej wiecej wiecie o co mi chodzi.


2. Druga sprawa to bezpieczeństwo, a dokladnie GET a jeszcze dokladniej link aktywacyjny konta np.: aktywacja.php?email=przyklad&numeraktywacyhny=75438508

Poniżej jest taki prsoty skrypt (nie caly bo jeszcze sprawdzenie aktywacji itd itp), lecz skrypt nie jest bezpieczny, czy moze ktos mi napisac jak najlepiej go zabezpieczyc przed injection i wszystkim innym ?


  1. <?php
  2.  
  3. $email = $GET["email"];
  4.  
  5. $kod = $GET["numeraktywacyhny"];
  6.  
  7. if(isset($email) && isset($kod)) {
  8.  
  9. $sprawdz = mysql_query("SELECT * FROM uzytkownicy WHERE email='$email' AND kod='$kod'");
  10.  
  11. if (mysql_num_rows($sprawdz) == 1) {
  12.  
  13. mysql_query("UPDATE uzytkownicy SET aktywacja = tak WHERE email = '$email'");
  14.  
  15. } else {
  16.  
  17. echo "LINK JEST NIEPRAWIDŁOWY";
  18.  
  19. }
  20.  
  21. }
  22.  
  23. ?>


Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
gosciuuu
post
Post #2





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 14.02.2013

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


Przyszło mi jeszcze do głowy żeby sprawdzic czy email jest faktycznie emailem a koc sklada sie tylko z cyfr:

  1.  
  2. <?php
  3.  
  4. $email = $GET["email"];
  5.  
  6. $kod = $GET["numer_aktywacyjny"];
  7.  
  8. if(isset($email) && isset($kod)) {
  9.  
  10. if(filter_var($email, FILTER_VALIDATE_EMAIL) && is_numeric($kod)) {
  11.  
  12. $sprawdz = mysql_query("SELECT * FROM users WHERE email='$email' AND kod='$kod'");
  13.  
  14. if (mysql_num_rows($sprawdz) == 1) {
  15.  
  16. mysql_query("UPDATE uzytkownicy SET aktywacja = tak WHERE email = '$email'");
  17.  
  18. } else {
  19.  
  20. echo "LINK JEST NIEPRAWIDŁOWY";
  21.  
  22. }
  23.  
  24. } else {
  25.  
  26. echo "DANE SĄ NIEPRAWIDŁOWE";
  27.  
  28. }
  29.  
  30. }
  31.  
  32. ?>
  33.  


Ten post edytował gosciuuu 17.02.2013, 12:59:59
Go to the top of the page
+Quote Post

Posty w temacie


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: 8.10.2025 - 21:06