Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem PHP: Přístup k stránkám zabezpečený heslem bez MySQL - je to bezpečné?

Dobrý den,
pro tentokrát řeším problém přihlášení do administračního centra bez použití databáze.
Přihlášení probíhá takto:

// hlavičky
include('../header.php');

// uživatel
$admin_user = 'user';
$admin_pw = '6e017b5464f820a6c1bb5e9f6d711a667a80d8ea';

// přihlášení (případné:-)
if ( $_POST['user'] != $admin_user or sha1($_POST['pw']) != $admin_pw ) {
  $_SESSION['login_err'] = 0;
  presmeruj('../prihlas.php');
}
else {
  $_SESSION['login'] = 1;
  unset($_SESSION['login_err']);
  presmeruj('../index.php');
}

Někde jsem četl, že přímo porovnání hesla není moc bezpečné, proto jsem přidal funkci sha1(), někde jsem taky četl něco o crypt, tak nevím.
Je toto řešení bezpečné proti případným útokům?

Dík za případné odpovědi

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
* Co kdyby člověk šel rovnou na prihlas.php? * Co kdyby člověk šel na header.php? * Nemáš to zajiště…
v6ak 10.04.2008 17:04
v6ak
* Co kdyby člověk šel rovnou na prihlas.php? Tohle mám vyřešené. * Co kdyby člověk šel na header.ph…
Kuncek 10.04.2008 18:03
Kuncek
XSRF dobře vysvětlil Jakub Vrána na cross-site-request-forgery.php . poslední
v6ak 10.04.2008 20:13
v6ak

* Co kdyby člověk šel rovnou na prihlas.php?
* Co kdyby člověk šel na header.php?
* Nemáš to zajištěný proti session fixation, za určitých podmínek by mohl jít útok s refererem. Oboje a další viz http://php.vrana.cz/zabezpeceni-session-promennych. php
* pokud $_POST['user'] nebo $_POST['pw'] neexistuje a v error_reporting je i E_NOTICE, vrhne to chybovou hlášku.
* A co CSRF? (XSRF) To se netýká přihlášení, ale jednotlivých akcí.

* Co kdyby člověk šel rovnou na prihlas.php?
Tohle mám vyřešené.

* Co kdyby člověk šel na header.php?
Rovněž vyřešené.

* Nemáš to zajištěný proti session fixation, za určitých podmínek by mohl jít útok s refererem. Oboje a další viz zabezpeceni-session-promennych. php
O tom si něco přečtu.

* pokud $_POST['user'] nebo $_POST['pw'] neexistuje a v error_reporting je i E_NOTICE, vrhne to chybovou hlášku.
Samozřejmě, že to vrhne chybovou hlášku, neposkytl údaje v POST, musí se přihlásit...

* A co CSRF? (XSRF) To se netýká přihlášení, ale jednotlivých akcí.
Tomuhle taky nerozumím.

Zpět do poradny Odpovědět na původní otázku Nahoru