Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Logowanie, pomoc przy logowaniu
seba199696
post
Post #1





Grupa: Zarejestrowani
Postów: 119
Pomógł: 0
Dołączył: 4.01.2011

Ostrzeżenie: (20%)
X----


  1. <?php
  2. include 'dbc.php'; //polaczenie z baza danych
  3. $user_login = htmlspecialchars(stripslashes(strip_tags(trim($_POST['username']))));
  4.  
  5.  
  6. $pass = md5(htmlspecialchars(stripslashes(strip_tags(trim($_POST['password'])))));
  7. $user_password = sha1($pass.$user_login);
  8.  
  9.  
  10. $user_log = "user_login='$user_login'";
  11. $user_pass = "user_password='$user_password'";
  12.  
  13. $result = mysql_query("SELECT `id`,`user_login`,`user_password`,`banned` FROM users WHERE
  14. $user_log AND $user_pass AND `banned` = '0'
  15. ") or die (mysql_error());
  16.  
  17.  
  18. if (mysql_num_rows($result) == 1) {
  19.  
  20. $_SESSION['user_name'] = $user_login;
  21. header('Location: index2.php');
  22.  
  23. } else {
  24. echo "Logowanie się nie powiodło :(";
  25.  
  26. }
  27. ?>


Witam, napisałem skrypt logujący użytkownika wszystko działa prawidłowo lecz chcę się dowiedzieć w jaki sposób zabezpieczyć taki skrypt przed atakami. Robię coś źle? Jakieś propozycję?

Dzięki
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
tehaha
post
Post #2





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

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


Cytat
A ja mam tylko pytanie po co to rzutowanie na integer przy id użytkownika? Przecież ta wartość jest pobierana z bazy i trzymana w sesji, a więc wiemy, że jest poprawna.

no może akurat w tym przypadku w kodzie proceduralnym nie będzie to konieczne, ale przecież w praktyce zmienne są podawane do metody jako argumenty i zapytanie trzeba odpowiednio zabezpieczyć bez wnikania skąd to będzie pochodziło bo różnie może być metoda użyta. Wydaje mi się, że też jako początkujący lepiej jak się nauczy zabezpieczać 100% przypadków, bo potem są takie sytuacje, gdzie bez namysłu skopiuje sobie gotowe zapytanie na inną podstronę zamieni $_SESSION na $_GET i luka gotowa

Cytat
A w zapytaniu tak samo na zadziała '1'(string) oraz 1(integer).
Tak, w mysql tak samo zadziała
  1. user_id = 1 oraz user_id = '1'
więc, tutaj można mówić jedynie o dobrym nawyku programowania, skoro mamy pole typu int to powinniśmy podawać int, a nie parsować string
Go to the top of the page
+Quote Post

Posty w temacie
- seba199696   Logowanie   7.09.2011, 17:40:13
- - tehaha   a to co za wynalazek? [HTML] pobierz, plaintext $p...   7.09.2011, 17:48:16
- - bastard13   [PHP] pobierz, plaintext $pass = md5(htmlspeci...   7.09.2011, 17:52:22
- - seba199696   ok dzięki zrobie tak ja mówicie "Możesz uży...   7.09.2011, 18:26:27
- - bastard13   Sorry, z tą solą to trochę pokręciłem. Tak to jest...   7.09.2011, 19:00:12
- - seba199696   Mógłbyś mi wytłumaczyć o co chodzi z mysql_real_es...   7.09.2011, 19:17:48
- - bastard13   Cytatmysql_real_escape_string() calls MySQL's ...   7.09.2011, 19:33:26
- - seba199696   Poprawiłem skrypt, teraz dobrze? [PHP] pobierz, p...   8.09.2011, 21:22:01
- - bastard13   Tak na pierwszy rzut oka to ok. Usunąłbym jednak t...   8.09.2011, 22:29:24
- - seba199696   Ok Mam jeszcze jedno pytanie, przeczytałem gdzieś...   10.09.2011, 09:53:38
- - tehaha   w sesji trzymasz to co potrzebujesz oprócz hasła. ...   10.09.2011, 11:52:45
- - seba199696   Czyli jak użytkownik dodaje komentarz to będzie .....   10.09.2011, 11:56:22
- - tehaha   tak, ale dla zabezpieczenia dajesz jeszcze rzutowa...   10.09.2011, 12:24:30
- - seba199696   a przy poprawnym logowaniu przypisać id używając: ...   10.09.2011, 13:00:09
- - tehaha   dokładnie, możesz również przypisać inne przydatne...   10.09.2011, 13:08:19
- - seba199696   Dzięki Mam jeszcze jedno pytanko w bazie mam u...   10.09.2011, 22:10:56
- - tehaha   tak oba varchar, ponieważ zezwalasz na użycie dowo...   11.09.2011, 00:13:48
- - bastard13   A ja mam tylko pytanie po co to rzutowanie na inte...   11.09.2011, 00:31:56
- - tehaha   CytatA ja mam tylko pytanie po co to rzutowanie na...   11.09.2011, 10:02:56
- - Fifi209   Chciałbym dodać do wypowiedzi tehaha, co to typów,...   11.09.2011, 15:04:27


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: 23.08.2025 - 12:52