• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zabezpieczenie skryptu logowania.

Aruba Cloud - Virtual Private Server VPS
0 głosów
350 wizyt
pytanie zadane 25 stycznia 2017 w PHP przez nielotweb Bywalec (2,240 p.)

Robię skrypt logowania, i mam szybkie pytanko. Otóż czy takie combo zabezpieczeń jakie napisałem jest w ogóle dobre? W sense czy wszystko poprawnie będzie 'zabezpieczać' ? Czy wystarczy jakbym samo bindowanie zostawił?

Z góry dziękuję! 

if(!empty($_POST['nickname']) && !empty($_POST['password'])) {

  $nickname = htmlspecialchars(trim($_POST['nickname']));
  $nickname = mysql_real_escape_string(htmlentities($nickname, ENT_QUOTES, "UTF-8"));
  $password = htmlspecialchars(trim($_POST['password']));
  $password = mysql_real_escape_string(htmlentities($password, ENT_QUOTES, "UTF-8"));

  $sqlSTM = $pdo->prepare("SELECT * FROM users WHERE nickname = :nickname");
  $sqlSTM->bindParam(':nickname', $nickname, PDO::PARAM_STR);
  $sqlSTM->execute();
  $results = $sqlSTM->fetch(PDO::FETCH_ASSOC);

  if( count($results) > 0 ) {

     if( $results['nickname'] == $nickname && password_verify($password, $results['password']) ) {

      die('Zalogowales sie!');

    } else {

      die('Podales zle dane logowania!');

    }
  }
}

 

1 odpowiedź

+3 głosów
odpowiedź 25 stycznia 2017 przez Arkadiusz Waluk Ekspert (290,090 p.)
wybrane 25 stycznia 2017 przez nielotweb
 
Najlepsza
Jeśli już wykorzystujesz bindowanie to nie potrzebujesz funkcji zabezpieczających typu mysql_real_escape_string. Samo w sobie bindowanie jest zabezpieczeniem bo zapytanie do bazy idzie osobno, a osobno podstawiane są wartości - nie ma więc możliwości wykonania ataku sql injection.

No i poza tym od PHP 7 funkcje zaczynające się od mysql_ już nie istnieją, więc tym bardziej nie powinieneś w ogóle ich używać.
komentarz 25 stycznia 2017 przez nielotweb Bywalec (2,240 p.)
Okej, rozumiem. Czyli zostawię tylko bindowanie :)

Dziękuję za odpowiedź!

Podobne pytania

+1 głos
2 odpowiedzi 331 wizyt
pytanie zadane 27 listopada 2023 w PHP przez Jcob2222 Użytkownik (590 p.)
0 głosów
2 odpowiedzi 685 wizyt
pytanie zadane 9 października 2017 w PHP przez Maciejunio Początkujący (430 p.)
–1 głos
1 odpowiedź 679 wizyt
pytanie zadane 13 lutego 2019 w PHP przez Greeenone Pasjonat (16,100 p.)

93,335 zapytań

142,330 odpowiedzi

322,415 komentarzy

62,669 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...