Описание: Нормальный ли это скрипт? |
Поиск в теме | Версия для печати |
UFO |
Отправлено: 16 Сентября, 2006 - 03:59:47
|
Full Member
Покинул форум
Сообщений всего: 212
Дата рег-ции: Янв. 2005
Карма 0
|
Мне тут понадобился скрипт для авторизации пользователей, т.е. когда пользователь вводит в окшечко свой уникальный пароль/номер, нажимает кнопочку и он оказывается на своей персональной страничке, где указаны какие-либо интресные и нужные только ему данные. Итак, скрипт выглядит так:
CODE:<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="POST">
Введите пароль
a = <input type="text" name="a">
<input type="hidden" name="act" value="act">
<input type="submit" name="submit" value="Войти">
<input type="reset" name="reset" value="Очистить">
</form>
<?
Error_Reporting(E_ALL & ~E_NOTICE);
if($a==test) echo "Пароль верный";
if($a<>test) echo "Пароль неверный";
?>
Возникли следущие вопросы:
1) Как вообще выглядит такой скрипт в свете безопасноти? Можно ли как-либо узнать какой пароль забыт в скрипте и соотвественно войти под этим паролем? А если придумать систему кодирования в этом же скрипте, это решит проблему (если она есть)? Скрипт расчитан на максимум 100 пользователей, у которых будут таким образом введены пароли, а при правильном вводе пароля будет отображаться его личная страница с определенной информацией.
2) Если не обращать внимания на первый пункт, то как вместо
CODE:echo "Пароль верный";
сделать include из какого либо файла?
CODE:echo "include('file.php')";
не работает в этом случае - выводит программный код (а если добавить <? и ?>, то ничего не выводит, даже если файл include с чем-либо).
3) Как можно заменить более универсально строчку
CODE:if($a<>test) echo "Пароль неверный";
?
Т.е. чтобы получилось так: если в скрипте нет введенного пароля, то выводилась надпись "Пароль неверный", ведь если другие пароли будут отличаться от "test", то будет противоречие.
Заранее спасибо за ответы |
|
|
Леголегс |
Отправлено: 16 Сентября, 2006 - 07:13:38
|
JS-маньяк
Покинул форум
Сообщений всего: 2109
Дата рег-ции: Июль 2004
Откуда: Липецк
Карма 17
|
Malcolm пишет: Подумай, что будет, если я введу вот такой пароль: ИМХО, будет "пароль не верный"
Malcolm пишет:Фильтровать примерно так: Ограничить пароли маленькими буквами латинского алфавита? Очень плохая идея.
Malcolm пишет:В данном случае нужно задать массив с паролями и проверять в нем. Если в массиве не нашел, тогда echo "Пароль неверный"; С хешами паролей, с хешами.
PHP:$passwd = Array("vasia" => "a86850deb2742ec3cb41518e26aa2d89",
"petia" => "e7df7cd2ca07f4f1ab415d457a6e1c13");
if (isset($passwd[$login]) && md5($a)==$passwd[$login]) include('correct.php');
У Васи пароль qwerty, у Пети 1234
Это базовый вариант, используются ещё несколько ухищрений, но я их не помню. |
|
|
|
Поиск в теме | Версия для печати |
Страниц (3): [1] 2 3 » |
Сейчас эту тему просматривают: 5 (гостей: 5, зарегистрированных: 0, скрытых: 0) |
« PHP/Perl » |
Все гости форума могут просматривать этот раздел. Только администраторы и модераторы могут создавать новые темы в этом разделе. Только администраторы и модераторы могут отвечать на сообщения в этом разделе.
|
|
|