[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Насколько безопастно такое решение
Страницы: 1, 2
kixik
Здравствуйте,

Мне тут понадобилось запаролить админку, я чисто ради эксперимента не использовал аштиаксес и пасс, пошёл другим путём… слегка ‘чайниковскаим’…. вот стало интересно ваше мнение насколько оно безопасно?

Итак,
Создаю текстовый файл в котором собсно храниться пароль к админки.
Создаю форму ввода пароля и логина с actino’ом на скрипт, который вытягивает из файла строку с паролем и сравнивает логин и пароль введённые и имеющиеся в файле. Если всё верно, то инклюдится страница админа, а если нет, то инклюдится страница с ошибкой.

Правда есть пока проблема с прямым обращением к страницы админа, это я не запрятил, никто неподскажет что для этого надо в аштиаксесе написать?

Вот код:

Код
<?php
$lines = file('textfile.txt'); // вытаскиваю тз файла строку с паролем

foreach ($lines as $line_num => $line) {
   if ($line_num == 0){
   $name=$line;
   }
   else {
   $parol=$line;
           }
//  echo $passf;
   }


$html = implode('', file ('textfile.txt'));

$login=$_POST["login"]; // из формы получаю
$pass=$_POST["pass"];
$login=strip_tags($login);
$pass=strip_tags($pass);

if ($login == 'adminis' and $pass == $parol){
        include("2.php");
        }
        else
       include("3.php");
?>


спасибо

_____________
vasa_c
Цитата
что для этого надо в аштиаксесе написать?

непонял, ты же решил без него делать
Цитата
file('textfile.txt');

файл с паролями так прямо и лежит в корне сайта в открытом доступе?

Сессии. Подробное описание работы и объяснение механизма.

_____________
Блог ГО | Таблица символов Юникода | Графомания
kixik
Цитата
непонял, ты же решил без него делать


ну да, без него в смысле без этого

Код
AuthName ""
AuthType Basic
Require valid-user
AuthUserFile .htpasswd
// кстати это у меня чего-то нехочет работать, может из-за того что я под виндой его пишу?

Код
файл с паролями так прямо и лежит в корне сайта в открытом доступе?


лежит....
так вот я и хочу закрыть доступ на прямое обращение к файлам дериктории админа

_____________
vasa_c
Код
AuthUserFile <абсолютный путь к файлу>


_____________
Блог ГО | Таблица символов Юникода | Графомания
kixik
ах вот оно что....

ну это меняет дело...))

_____________
V@ssiliy
Цитата(kixik @ 11.5.2007, 7:31) [snapback]20217[/snapback]
Здравствуйте,

Мне тут понадобилось запаролить админку, я чисто ради эксперимента не использовал аштиаксес и пасс, пошёл другим путём… слегка ‘чайниковскаим’…. вот стало интересно ваше мнение насколько оно безопасно?

Итак,
Создаю текстовый файл в котором собсно храниться пароль к админки.
Создаю форму ввода пароля и логина с actino’ом на скрипт, который вытягивает из файла строку с паролем и сравнивает логин и пароль введённые и имеющиеся в файле. Если всё верно, то инклюдится страница админа, а если нет, то инклюдится страница с ошибкой.

Правда есть пока проблема с прямым обращением к страницы админа, это я не запрятил, никто неподскажет что для этого надо в аштиаксесе написать?

Вот код:

Код
<?php
$lines = file('textfile.txt'); // вытаскиваю тз файла строку с паролем

foreach ($lines as $line_num => $line) {
   if ($line_num == 0){
   $name=$line;
   }
   else {
   $parol=$line;
           }
//  echo $passf;
   }


$html = implode('', file ('textfile.txt'));

$login=$_POST["login"]; // из формы получаю
$pass=$_POST["pass"];
$login=strip_tags($login);
$pass=strip_tags($pass);

if ($login == 'adminis' and $pass == $parol){
        include("2.php");
        }
        else
       include("3.php");
?>


спасибо


Можно брутерфорсом подобрать пароль/логин.
Для избежания брутерфорса, в начале скрипта нужно поставить sleep(3)
Это очень сильно будет тормозить перебор и сделает его бессмысленным! так как перебор будет идти со скоростью 1 комбинация раз в 3 секунды.

Еще нужно хранить логин и пароль в тройном md5 хеше. а при авторизации вводимый логин и пароль тоже хешировать при помощи md5 три раза и сравнить хешы. Или использовать функцию crypt() в которой в качестве ключа использовать склейку логин.пароль.

Вот пожалуй основные рекомендации по безопасности для данного скрипта.
Argnist
а если пароль хранить как переменную в файле *.php это сильно опасно?

_____________
Компания "Доширак" выпустила облегченные версии своего продукта - "Дошигастрит" и "Дошиязва"
vasa_c
Цитата
Для избежания брутерфорса, в начале скрипта нужно поставить sleep(3)

sleep(3) абсолютно бесполезен, т.к. выводит процесс из очереди и тот не жрет ресурсов. Нужно просто посылать запросы параллельно и никакого эффекта от sleep не будет.

_____________
Блог ГО | Таблица символов Юникода | Графомания
DESert
[quote name='kixik' date='11.5.2007, 7:31' post='20217']
Здравствуйте,

Мне тут понадобилось запаролить админку, я чисто ради эксперимента не использовал аштиаксес и пасс, пошёл другим путём… слегка ‘чайниковскаим’…. вот стало интересно ваше мнение насколько оно безопасно?

Итак,
Создаю текстовый файл в котором собсно храниться пароль к админки.
Создаю форму ввода пароля и логина с actino’ом на скрипт, который вытягивает из файла строку с паролем и сравнивает логин и пароль введённые и имеющиеся в файле. Если всё верно, то инклюдится страница админа, а если нет, то инклюдится страница с ошибкой.



Привет!! могу подсказать один способ, но совсем не такой(без использования ФАЙЛА С ПАРОЛЯМИ)...я давно им пользуюсь, и жалоб пока не было...если интересно, напиши, раскажу!!!! rolleyes.gif
php_maestro
Если зашла речь о хранении данных в файлах, то совет прост - хранить данные в файлах с расширением .php. В файлах смело пишем:

Код
<?php exit; __halt_compiler();
{всё, что угодно, даже пароль}


потом просто читаем содержимое всего файла, откидываем первую строку и - вуаля, все нужные данные пере вами.
Bahjahkah
Храним пароли как переменные в файле с паролями. В главном файле пишем: define (MY_FILE, true);
А в файле с паролями вначале пишем: if (!defined(MY_FILE)) {die(); exit();};
Затем в главный файл инклудим файл с паролями.

_____________
Первый твой враг - не баг и не глюк, а твоя собственная невнимательность.
vasa_c
Не забывайте при определении/проверке констант использовать кавычки.
Так же не забывайте смотреть на срок годности темы.
В чем, кстати, сакральный смысл последовательности "die(); exit()"?

_____________
Блог ГО | Таблица символов Юникода | Графомания
Bahjahkah
Дело в том, что true сама по себе является константой, так же как и false и null, так что здесь кавычки не нужны.
Цитата
В чем, кстати, сакральный смысл последовательности "die(); exit()"?

Каждый страдает по-своему. smile.gif
Можно конечно в заголовке просто послать страницу 404, так будет лучше.

_____________
Первый твой враг - не баг и не глюк, а твоя собственная невнимательность.
vasa_c
define("const", "value");
if (defined("const")) ...

Что делает die() ?

_____________
Блог ГО | Таблица символов Юникода | Графомания
Bahjahkah
Цитата
define("const", "value");
if (defined("const")) ...

Неправильно. Для названия констант не нужны кавычки!
define (CONST, "value")
В моем же примере, вместо value выспупает другая константа
define (CONTS, true); // кавычки не нужны

die() немедленно завершает работу скрипта выводя в браузер сообщение посылаемое через необязательный аргумент в функции die();
Например: die ("Can't open this page");
Завершит работу скрипта на этой строчке и выведет в браузер сообщение: Can't open this page

_____________
Первый твой враг - не баг и не глюк, а твоя собственная невнимательность.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.