Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z kombinacją zmiennej.
w0jt3k
post
Post #1





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 29.09.2013

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


Czy taka kombinacja zmiennej jest poprawna i zostanie zinterpretowana przez serwer poprawnie? Głównie chodzi o ochronę przed SQLInjection.

  1. $nazwa_uz = addslashes((string)trim($_POST['nazwa_uz']));


Czy może powinno to wyglądać tak?
  1. $nazwa_uz = addslashes($nazwa_uz);
  2. }
  3. $nazwa_uz = (string)$_POST['nazwa_uz'];
  4. $nazwa_uz = trim($_POST['nazwa_uz']);


Albo jeszcze inaczej wymyśliłem:
  1. $nazwa_uz = addslashes($_POST['nazwa_uz']);
  2. $nazwa_uz = addslashes($nazwa_uz);
  3. $nazwa_uz = (string)$_POST['nazwa_uz'];
  4. $nazwa_uz = (string)$nazwa_uz;
  5. $nazwa_uz = trim($_POST['nazwa_uz']);
  6. $nazwa_uz = trim($nazwa_uz);
  7. }
  8. else
  9. {
  10. $nazwa_uz = (string)$_POST['nazwa_uz'];
  11. $nazwa_uz = trim($_POST['nazwa_uz']);
  12. $nazwa_uz = trim($nazwa_uz);
  13. }


Czy to jest poprawne?

Ten post edytował w0jt3k 30.09.2013, 20:43:45
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
No, nie rozumiem. I prosiłbym o szersze wyjaśnienia. Swoją drogą bardzo sięuśmiałem, czytając Twoją opinię Dzięki za mniej więcej uświadomienie mi błędu.
Mógłby ktoś wyjaśnić mi, jak się więc zabezpieczyć dokładnie? Dam real escape i addcslashes %_ bo real escape nie escapuje %_ i inta przed, tak?

To moze napisz dokladnie czego nie zrozumiales z mojego posta, bo nie wierze ze nic. A jesli naprawde nie zrozumiales nic, to poprostu sie w ogole nie starales by zrozumiec....

Przeciez napisalem wyraznie ja, oraz wczesniej przedemna inni, ze liczb nie trzeba escapowac tylko rzutowac na int i juz. TU nie ma co wyjasniac ani robic nic wiecej "na wszelki wypadek". Liczba to liczba, ona nie ma nic do escapowania po zrzutowaniu na INT.

Napisalem ci rowniez, ze zabezpieczasz dane po tym, jak juz z nich skorzystales..... To tak jakbys slodzil herbate juz po tym, jak ją wypiles... Durne, nieprawdaz? Jak chesz miec slodką herbate to ją sie slodzi przed wypiciem a nie po. Identycznie z danymi do zapytania: je sie zabezpiecza przed wykonaniem zapytania a nie po. Naprawde tego nie rozumiesz i to też wymaga dodatkowych wyjasnien?

Escapowanie %_? Po co? Dodatkowo oprocz addcslashes robisz addslashes..... Toz ci napisalem, ze robisz to podwojnie, a przez to zle. Ma byc samo real_escape_string. Tu rowniez nie ma co tlumaczyc.


num_rows? Uzywam PDO od x lat i pewnie jestem dziwny, ale ani razu nie potrzebowalem num_rows, bo i po co? By sprawdzic czy uzytkownik z danym emailem i haslem istnieje? W tym celu poprostu pobieram rekord przy pomocy FETCH. Jak sie rekord pobierze, znaczy ze user istnieje, jak sie nie pobierze znaczy ze nie istnieje (pomijam przypadek bledu zapytnia by nie mieszac.)
Go to the top of the page
+Quote Post

Posty w temacie


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: 27.12.2025 - 17:09