Kezdőoldal » Számítástechnika » Weblapkészítés » Mi a hiba ebben a php scriptben?

Mi a hiba ebben a php scriptben?

Figyelt kérdés

Nos...nem varom el, hogy itt kezdjetek keresgelni a hibat...de aki jobban erti mint en...az hamar rajon. Nem tudok rajonni, egyszeruen hiaba irok be rossz felhasznalonevet ugy is beenged. Roviden...mindegy mit irok be, ugy is be tudok lepni. :(. Ha nem irok az inputba semmit akkor kiirja az altalam irt "error" uzenetet.


---------------------------------

<?php

$error='';

if(isset($_POST['submit'])){

if(empty($_POST['user']) || empty($_POST['pass'])){

$error="Hibas felhasznalonev vagy jelszo!";

}

else{

$user =$_POST['user'];

$pass =$_POST['pass'];



//$db_host = 'localhost';

$db_host = 'localhost';

$db_user = 'root';

$db_pass = '';

$db_name = 'test';


$connect = new mysqli($db_host,$db_user,$db_pass,$db_name);


$db = mysqli_select_db($connect,$db_name);


$query = mysql_query($connect,"

SELECT * FROM admin WHERE user={'$user'} AND password ={'$pass'}

");


$rows = mysql_num_rows($query);


if($rows == 1){

header("Location: admin/welcome.php");

}


else{

$error="Hibas felhasznalonev vagy jelszo!";

}

}

}



?>



Elore is koszonom a valaszokat.



2017. máj. 16. 21:26
 1/9 anonim válasza:
A mysql_query()-nek nem csak 1 parametere van?
2017. máj. 16. 21:34
Hasznos számodra ez a válasz?
 2/9 anonim ***** válasza:

1. mysqli-t kezdesz használni - ráadásul objektum-orientált stílusban - majd a lekérdezést már mysql-lel hajtod végre procedurálisan. De a legszebb lenne, ha PDO-t használnál.


2. Nem használsz mysqli_real_escape_string-et. Így SQL-injection révén máris támadható az adatbázisod.


3. Jelszót SOSEM tárolunk adatbázisban. Maximum az ellenorzóösszeget.


4. Az admin/welcome.php miből fogja tudni, hogy nem-e illetéktelen jutott be? Sikeres bejelentkezéskor létre kellene hozni egy munkamenetet, és a welcome.php-ban ellenőrizni annak meglétét.

2017. máj. 16. 21:39
Hasznos számodra ez a válasz?
 3/9 A kérdező kommentje:

#1 Javitottam, de 2 hibat kaptam cserebe.


#2 Fu...csak most kezdtem tanulni a php-t vagy 1 napja :D. Tudom :) de most egyenlore ilyen formaban csinalom. Meg van egy rengetek fugveny amit nem hasznaltam...pl van egy ilyen html fugveny is ha minden igaz , hogy ne lehessen :)-kat irogatni benne stb. Hidd el rengetek kodot olvastam, peldaprogramot oldottam meg...de valahogy ennel a resznel elakadtam. Nem tudom, hogy erted...jelszot nem tarolunk adatbazisban ? En letrehoztam egy felhasznalonevet amivel be tudok lepni a jelszot md5-el lattam el...de ennek mi a lenyege...,hogyha valaki megnezni akkor ne tudja...de en egy oldalon ki probaltam bemasoltam es kiirta a jelszot ?


Negyedik kerdesedre a valasz...meg nem tartok ott, nincs akkora tudasom.


(Ez nem azt jelenti, hogy 1 honap mulva elesben fogom serveren futtatni addig tanulom amig nem megy...ha ugy erzem egyedul nem megy akkor keresek tanfolyamot)


Koszonom szepen, hogy irtatok.

2017. máj. 16. 21:53
 4/9 anonim ***** válasza:

1,ha mysqli-t használsz,akkor mindenhol azt használd!

2,$db = mysqli_select_db($connect,$db_name); felesleges

3,$query = mysql_query($connect,"

SELECT * FROM admin WHERE user={'$user'} AND password ={'$pass'}

"); // az 1-es pontban leírton kívűl jobb,ha $res = .. vagy $result változónévvel illeted,mert ez eredmény,nem pedig lekérdező string.

[link]

2017. máj. 16. 23:17
Hasznos számodra ez a válasz?
 5/9 anonim ***** válasza:
Én csak azt nem értem, hogy aki 1 napja tanulja a PHP-t, az miért pont login rendszert akar írni?
2017. máj. 17. 07:57
Hasznos számodra ez a válasz?
 6/9 anonim ***** válasza:

#5


Én is így kezdtem 5éve, hogy login rendszer. Mert egy újoncnak ezt jelenti a kihívást, és ha sikerült, akkor érti is.

Ez is egy feladat, mint egy alap algoritmust megírni. Meg amúgy is: valami célnak kell lennie.

2017. máj. 17. 14:04
Hasznos számodra ez a válasz?
 7/9 anonim ***** válasza:

DE! Legalább egy ember aki úgy tanul, hogy doksit olvas. Ritka ez itt gyíkon. :3


Akkor pár javaslat!


- MD5, SHA1-et jelszó hash-elésre nem használunk. Nem azért mert nem működik, hanem mert szivárványtáblával kideríthető az eredeti jelszó.

Inkább sózzál:

[link]

[link]

[link]

Jelszó összehasonlítás annyit takar, hogy egy titkosított valami szöveget mentesz le a DB-be, és ha bejön loginkor egy jelszó (lehasheled), akkor összehasonlítod a tárolttal. Ehhez a 3. link fog kelleni.


- mysql_ és mysqli_ függvényeket addig használd, míg meg nem ismerkedsz az OOP-vel. Akkor ismerkedj össze a PDO-val, és térj is át rá. (OOP-vel jobban meg is érted)

2017. máj. 17. 14:12
Hasznos számodra ez a válasz?
 8/9 A kérdező kommentje:

#4 Koszonom :D celszerubb 1 fajtat hasznalni :D


#5 #6-os leirtad...amugy igen ki akartam magam probalni mit tudok...hat lathatod magad is :D semmit :(


#7 Oh...szoval akkor igy tortenik a jelszavas dolog. De olvastam egy olyant is, hogy van valami "hack szotar" lehet rosszul irom. A lenyeg az, hogy python-al vagy C++al irt alkalmazas aminek a celja egy txt-bol olvassa be a jelszavakat, hogyha talal egyezest akkor meg van a jelszo...minnel tobb jelszo van annal jobb lattam van 5-10Gb-os is. Szoval ha minden igaz akkor ez probalgassa. Gondolom valamit a mysql-el kell babralni, hogyha tul sok lekerdezes tortenik akkor dobja le ? Ezt meg nem vagom olyan jol...


Koszonom szepen mindenkinek a segitseget!.

2017. máj. 17. 17:06
 9/9 anonim ***** válasza:

Rosszul értelmezed a szivárványtáblát.

Ez nem azt csinálja, hogy próbálgatja a jelszót, hanem maga a jelszó hash kell ahhoz, hogy társíts hozzá jelszót.


Ezért is jó a sózás, mivel ha 10x lefuttatod ugyanarra a jelszóra 10x más eredményt kapsz. Ezért kell külön ellenőrző algoritmus (3. link), mert ha első és majd később a loginkor kapott jelszót is átfuttatod a hashelésen (2. link), akkor az nem egyenlő.


Végig próbálgatni rengeteg kombinációt az hosszadalmas és nem éri meg. Aki támadni szeretne, az nem így közelíti meg.

2017. máj. 17. 21:51
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!