Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] SQL Injection
pablo114
post
Post #1





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 11.07.2007

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


Napisałem skrypt ale nie potrafie go zabezpieczyć. Jest to skrypt rejestracji wprowadzający login i hasło do bazy MSSQL

czy funkcja addslashes wystarczy? jeśli możecie to pomóżcie smile.gif

  1. <?
  2. #-- Fragment gdzie podajemy dane do połączenia z MSSQL'em --#
  3. $host = "localhost";
  4. $user = "login_sql";
  5. $userpass = "haslo_sql";
  6. $baza = "nazwa_bazy";
  7.  
  8. #-- Łączenie się z MSSQL'em i wybór bazy danych --#
  9. $polaczenie = @mssql_connect($host,$user,$userpass);
  10. @mssql_select_db($baza,$polaczenie);
  11.  
  12. #-- Tu tworzymy zmienne, pobierające dane z formularza --#
  13. $login = $_POST['login'];
  14. $haslo = $_POST['haslo'];
  15. $potwierdzenie = $_POST['haslo2'];
  16.  
  17. #-- Sprawdzamy czy hasła w polach formularza są identyczne, jeśli nie, skrypt kończ
    y swoje działanie --#
  18. if ($haslo != $potwierdzenie) // Znak != oznacza różny
  19. {
  20. die ('Hasła się nie zgadzają, spróbuj ponownie<br><a href="reg.php">wróc</a>');
  21. }
  22.  
  23. #-- Zmienna do której przypisane jest zadanie SELECT --#
  24. $sprawdzlogin = mssql_query("SELECT LOWER(memb___id) FROM MEMB_INFO WHERE LOWER(memb___id) = ('$login')") or die;
  25.  
  26. #-- Warunek sprawdzający czy w bazie nie ma już identycznego loginu, jeśli jest, sk
    rypt kończy swoje działanie i wyświetla odpowiedni komunikat --#
  27. if (mssql_num_rows($sprawdzlogin)) 
  28. {
  29. die ('Takie konto juz istnieje, wybierz inna nazwe<br><a href="reg.php">wróc</a>');
  30.  }
  31. #-- kolejny warunek, sprawdza pola w formularzu czy są wypełnione, jeśli nie wyświe
    tla odpowiednią wiadomość --#
  32. elseif (empty($login) || empty($haslo) ) // Znak || oznacza słowo LUB
  33. {
  34. die ('Wypełnij wszystkie pola<br><a href="reg.php">wróc</a>');
  35. }
  36.  
  37. #-- I teraz, po przejściu wszystkich warunków, skrypt wrzuca dane do bazy danych, j
    eśli się nie powiedzie wyświetla odpowiedni komunikat --#
  38. mssql_query("INSERT INTO MEMB_INFO 
  39.  
  40. (memb_guid,memb___id,memb__pwd,memb_name,sno__numb,post_code,addr_info,addr_
    d
  41.  
  42. eta,tel__numb,mail_addr,phon_numb,fpas_ques,fpas_answ,job__code,appl_days,mod
  43.  
  44. i_days,out__days,true_days,mail_chek,bloc_code,ctl1_code) VALUES 
  45.  
  46. ('1','$login','$haslo','Imie', 
  47.  
  48. '1','1234','11111','personalid','12343','email','email','pytanie','odpowiedz'
  49.  
  50. ,'1',getdate(),getdate(),getdate(),getdate(),'1','0','1')") || die('Niestety, zakładanie konta nie powiodło się, spróbuj ponownie<br><a href="reg.php">wróc</a>');
  51.  
  52. #-- Po prawidłowym zakończeniu wpisywania danych do bazy, komunikat --#
  53. echo "Konto zostało utworzone, dziękujemy"; //echo służy do wyświetlania tekstu
  54.  
  55. ?>
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: 19.08.2025 - 15:44