Több belépési adat mysql nélkül?
Sziasztok. Hogyan oldhatnám meg, hogy több jelszót, belépési nevet adhassak meg mysql nélkül. Ennek a részlegnek ez a kódja:
foreach ($this->users as $user => $pass) {
if ($username == Admin && $password == Admin) {
$this->username = $username;
return TRUE;
}
}
Hogyan írhatnám át, hogy ne csak Admin Admin, hanem legyen még Admin1 Admin1 stb jelszó/név?
Válaszokat előre is köszönöm!
Ez, amit bemásoltál eleve hatalmas sechole.
Tárold fájlban, mondjuk CSV-ben vagy XML-ben az összetartozó felhasználónevet és jelszót. De a jelszóból csinálj hash-t és azt tárold el, azt ellenőrizd. Így sem lesz biztonságos, de egy fokkal már jobb.
Az olvasási jogot meg vedd le arról a fájlról, amiben tárolod az adatokat, 600 jogosultságokkal rendelkezzen.
Ilyen esetben érdemes a jelszavakat tartalmazó fájlt olyan helyre rakni a szerveren ami webről nem érhető el. Ez azért kellhet, hogy ha véletlenül lehal a php se legyen para h kikerül minden pass.
A tárhelyeden van valszeg egy www vagy egy htdocs mappa ahova rakod az index.php -t stb. Namost ezen kivül csinalj egy passwords.php -t. Abba:
<?php
$users = array(
'admin' => 'jdansj348732nj3n4j32432',
'admin2' => 'jdsadsaj348732nj3n4j399574',
'admin3' => 'jdansj348732nj3n4j32432'
);
?>
A lényeg h a másodikba md5-ölt legyen a jelszó.
Ezután ahol beléptetsz ott.
<?php
require_once '../passwords.php';
if ((isset($_POST['user']) && ($_POST['user']))
if (array_key_exists($_POST['user']))
{
if (md5($_POST['password'])==$users[$_POST['user']])
{
// BELÉPTETÉS
}
else
// HIBÁS USERNAME/PASSWORD KOMBO
}
Érdemes lehte még saltozni a jelszót, tehát a jelszó elé rakni valamilyen stringet.
Pl ha a jelszó 12345 akkor azt tárolod le h SALT12345 md5-ölve. Az ellenőrzésnél pedig nem md5($_POST['password']) hanem md5('SALT'.$_POST['password']) -al hasonlítod össze.
#5 Szerinted ez mennyire biztonságos?
Tegyük fel, hogy 10 karakter hosszú az átlagos jelszó (de szép is lenne). Ha csak a hosszát ellenőrizzük, maximum 10 próbálkozás után bent vagyok bárki fiókjában.
szerintem ő arra gondolt h a jelszó:
SALT + pass + jelszohossza
igy mar tutira nem lesz benne semmilyen adatbazisban
Sziasztok, köszönöm a válaszokat. Sajnos nem nagyon értek hozzá, ezt is sokáig csináltam. Nem lehet csak simán valahogy elválasztani, hogy foreach ($this->users as $user => $pass) {
if ($username == Admin && $password == Admin && $username admins && $password admins) {
$this->username = $username;
return TRUE;
}
}
Vagy valahogy?
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!