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

logowanie php

0 głosów
224 wizyt
pytanie zadane 16 kwietnia 2016 w PHP przez michal Mądrala (5,560 p.)
Mam pytanie czy system logowania opisany w drugim odcinku kursu PHP: https://www.youtube.com/watch?v=Pp578w7C9hE, jest bezpieczny? Mam zamiar do połączeń z bazą wykorzystać PDO, ale czy poza tym, jeśli zastosuje takie sprawdzanie loginu i hasła i informacje czy user jest zalogowany, czy nie będę przechowywał w zmiennych sesyjnych będzie bezpieczne? Czy może polecacie jakiś inny przystępny sposób który można w łatwy sposób opanować?

2 odpowiedzi

+2 głosów
odpowiedź 16 kwietnia 2016 przez efiku Szeryf (75,160 p.)
edycja 16 kwietnia 2016 przez efiku

Nie jest bezpieczny,  jest tylko do ćwiczeń - nie na produkcję. 

  • Po header dajemy exit
  • hasła hashujemy za pomocą password_hash, weryfikujemy za pomocą password_verify
  • htmlentit... to nie jest do tego co tam jest pokazane. I w żaden sposób nie chroni Cię to przed SQLI.
  • PDO + bindowanie parametrow ( TO CIĘ CHRONI )
  • zmienne Login i hasło rzucą noticem.
  • W sesji trzymaj tylko np id usera.  (tylko niezbędne rzeczy)
  • Nie wyciszaj błędów, tylko je obsługuj. Try.. catch. / isset /  "??" - "$variable = $array["x"] ?? "";
  • Szanuj swój Kod. Angielskie naszwy zmiennych, standard PSR-2
  • Oddziel html od PHP za pomocą Twiga.

Mysqli zobaczysz już niestety tylko w takich kursach ;) 

komentarz 16 kwietnia 2016 przez michal Mądrala (5,560 p.)
Dzięki za rozjaśnienie tematu.]

"Po header dajemy exit" - mógłbyś coś więcej powiedzieć co miałeś na myśli ?

Hashowanie hasła - rozumię

PDO - rozumię

Jak sprawdzać po zalogowaniu na kolejnych stronach czy user jest zalogowany? Zmienna sesyjna $_SESSION]'zalogowany'] z wartością  true/false ? Czy jest lepszy sposób? Jeśli jest to prosił bym chociaż o jakieś namiary czego szukać :)

Dzięki za pomoc.
komentarz 16 kwietnia 2016 przez efiku Szeryf (75,160 p.)

Jeżeli miałbym dać Ci namiary, to... wyobraź sobie, że takich rzeczy nie robimy już w czystym PHP.  Są od tego frameworki, które ogarniają za nas Routing, Sesje, poprawność danych..  W sesji zamiast zalogowany trzymałbym id usera, jak nie jest zalogowany to domyślnie ma -1 ( Anonimowy) i może być jakaś też rola.

"Po header dajemy exit" - podczas debugowania ładnie zobaczysz, że jak dajesz redirect to się okazuje, że skrypt się magicznie nie zatrzymał ;) dlatego trzeba dać exit.

np. exit( header("location")...);

 

0 głosów
odpowiedź 16 kwietnia 2016 przez Mateusz11 Pasjonat (22,910 p.)
System jest odporny na ataki SQLInjection, ale radzę jeszcze zamiast @ spróbować innych sposobów, zamiast tej nieszczęsnej @. Więc w zmiennych sesyjnych przechowywuj, chyba nie ma lepszych metod.
komentarz 16 kwietnia 2016 przez niezalogowany

 ale radzę jeszcze zamiast @ spróbować innych sposobów, zamiast tej nieszczęsnej @

Co radzisz zamiast tej nieszczęsnej @ ?

komentarz 16 kwietnia 2016 przez Mateusz11 Pasjonat (22,910 p.)
Pomyślmy... Hmm... Może try catch?
1
komentarz 16 kwietnia 2016 przez efiku Szeryf (75,160 p.)
"System jest odporny na ataki SQLInjection,"

Pokaż ten fragment kodu ;)

Podobne pytania

0 głosów
1 odpowiedź 327 wizyt
0 głosów
1 odpowiedź 837 wizyt
0 głosów
0 odpowiedzi 418 wizyt
pytanie zadane 24 listopada 2021 w PHP przez BarSki13 Obywatel (1,250 p.)

93,427 zapytań

142,421 odpowiedzi

322,649 komentarzy

62,787 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

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...