|
|
|
| Скажите, чем опасен такой вариант проверки входа в админку?
<?
session_start();
if (!empty($_POST["pass"]))
{
$pass = trim(strip_tags($_POST["pass"]));
if ($pass == "mypass") $_SESSION["ok"] = "ok";
}
if ($_SESSION["ok"] != "ok")
{
require_once("pass.html"); // грузим страницу авторизации
}
else
{
?>
Тут код админки
<?
}
?>
|
Я слышал, что как-то можно красть сессии и т.д.? Но как? Код php же на сервере и его никто не видит. Я не могу понять чисто технически чем опасна такая механика авторизации? | |
|
|
|
|
|
|
|
для: Sharax
(09.03.2015 в 23:26)
| | >if ($pass == "mypass")
Если в переменную $pass передать 0 то может так случится, что при приведении типов $pass будет равна 0 и "mypass" будет равна 0 и данное условие вернет true(хотя по факту пароль введен неверно)
Лучше заменить на if ($pass === "mypass"), а вообще лучше использовать хеш пароля.
>Я слышал, что как-то можно красть сессии и т.д.?
Можно украсть идентификатор сессии хранящийся в куках или (в самых тяжелых случаях) в адресной строке, и если этот краденый идентификатор установить в свою куку, то можно получить доступ к сессии пользователя, а следовательно и ко всем сессионным переменным, поэтому стоит в сессию завести хеш каких-нибудь персональных данных пользователя(IP,браузер и т.п.) и проверять с хешем текущих значений | |
|
|
|