|
|
|
| Приветствую всех!
в общем задача такая:
при входе в админку необходимо запрашивать логин и пароль - для админа и только.
и необходимо чтобы пороль был хорошо заХЕШирован... ну и конечно привязать это всё к админке...
на других форумах мне отвечали довольно неуважительно а у вас я смотрю процветает уважение к Нюбам :)
заранее спасибо. | |
|
|
|
|
|
|
|
для: SINtez
(11.08.2005 в 14:20)
| | хешировать можно при помощи md5() или password а можно и тем и доугим несколько раз. | |
|
|
|
|
|
|
|
для: Евгений Петров
(11.08.2005 в 14:25)
| | дело в том, что я пока что ещё чайник и поэтому смутно предстваляю себе как это происходит точнее что и куда писать надо... | |
|
|
|
|
|
|
|
для: SINtez
(11.08.2005 в 14:29)
| | смотри есть пароль "dsf" хешируем его md5 :
<?
$pass="dsf";
$pass=md5($pass);
echo $pass; //хеш пароля
?>
|
хешируем несколько раз подряд ^
<?
$pass="dsf";
$pass=md5($pass);
$pass=md5($pass);
$pass=md5($pass);
echo $pass; //Выводится "3-ной" хеш пароля
?>
|
Вот и все дела) | |
|
|
|
|
|
|
|
для: Евгений Петров
(11.08.2005 в 14:25)
| | Если пароль берется не из БД, а из файла, то чтоб его там не подсмотрели, то его перед этим хешируем md5() 3 раза подряд... расшифровать то что было изначально наверное нереально... или нужно подождать пару лет))), ну и перед проверкой пороля используй sleep(2); чтоп усложнить бутафорс) | |
|
|
|
|
|
|
|
|
для: P@Sol
(11.08.2005 в 14:28)
| | на сколько понял по ссылке идёт речь о регистрации других людей и последующем их посещении данных страниц... я не прав? я чтото упустил? | |
|
|
|
|
|
|
|
для: SINtez
(11.08.2005 в 14:31)
| | Ну а чтоб только администратор смог надо где то там прописать
if($login == '"dmin")
// и дальше код который пускает дальше.
|
| |
|
|
|
|
|
|
|
для: SINtez
(11.08.2005 в 14:31)
| | ну....а вам регистрация не нужна??? там есть и вход...а для шифрования пароля надо так $pass=md5($pass); или как предлогают выше $pass=md5(md5(md5($pass))); | |
|
|
|
|
|
|
|
для: P@Sol
(11.08.2005 в 14:36)
| | Ну трижды его хешировать смысла нет: все равно это необратимое шифрование. Так что даже из одного хэша можно получить множество комбинаций... | |
|
|
|
|
|
|
|
для: SINtez
(11.08.2005 в 14:20)
| | >при входе в админку необходимо запрашивать логин и пароль -
>для админа и только.
это не возможно, т.к. скрипту надо дать понять админ ты или нет....поэтому форма будет выводиться для всех...а пароль знает только админ:) | |
|
|
|
|
|
|
|
для: P@Sol
(11.08.2005 в 14:38)
| | Можно по IP адресу проверять если он постоянный для админа или в cookie какой нибудь код помещать - типа админ. | |
|
|
|
|
|
|
|
для: Евгений Петров
(11.08.2005 в 14:41)
| | а если админ из инет кафе решил зайти? или из гостей? | |
|
|
|
|
|
|
|
для: P@Sol
(11.08.2005 в 14:38)
| | ну да, я это и имел ввиду | |
|
|
|
|
|
|
|
для: SINtez
(11.08.2005 в 14:20)
| | Вобщем я вырвал кусок кода из одного из приложений, его надо поставить в начало документа который хочешь "зашитить паролем" , ну и есенно немного подправить
<?
session_start();
if (empty($_SESSION['avtoriz'])&& $_SESSION['ip'] != $_SERVER['REMOTE_ADDR'])
{
if (isset($login) && isset($pass))
{
$login=md5($login);
$pass=md5($pass);
$pass=md5($pass);
if ($login === "3689521afb72c966754f1ccb34ed6530" && $pass === "7f5f358af2656a62415a27950b40a730")
{
$_SESSION['avtoriz'] = true;
$_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
echo "Спасибо вы авторизованы, для продолжения работы проидите по <a href=".$location.">этой ссылке</a> Или просто обновите странницу";
}
}
else
{
?>
<form action =admin_catalog.php method="post">
Логин :<input type="text" name="login" maxlength="15"/>
Пароль :<input type="password" name="pass" maxlength="25"/>
<input type="submit" value="Зайти"/></form>
<?
}
sleep(4);
exit();
}
echo "Секретные данные :)))"
?>
|
в данном случае логин - "гость", пароль - "пасс" | |
|
|
|
|
|
|
|
для: Гость
(11.08.2005 в 14:53)
| | конкретно по данному посту у меня вопрос а как сменить пароль и логин если они захешированы? | |
|
|
|
|
|
|
|
для: SINtez
(11.08.2005 в 15:21)
| | такой код покажет тебе хеш нужного слова:
<?
echo md5('нужное_слово/набор_букв');
?>
|
| |
|
|
|
|
|
|
|
для: Гость
(11.08.2005 в 17:08)
| | спасибо - я понял. | |
|
|
|
|
|
|
|
для: Гость
(11.08.2005 в 14:53)
| | а если человек допустим скачает этот файл с помощью телепортпро он сможет обнаружить пароль? | |
|
|
|
|
|
|
|
для: Гость
(11.08.2005 в 14:53)
| | может я чего не понял? он меня и при правильном и при неправильном ответах перекидывает на страницу admin_catalog.php :((( | |
|
|
|
|
|
|
|
для: SINtez
(11.08.2005 в 14:20)
| | господа, прошу прощения я как всегда не правильн овыразил мысль...
я имел в виду следующее:
допустим есть гостевая, она без админки, задача это написать к ней админку и соответственно запоролить её, тоесть чтобы входить смог только чел знаю щий пароль, ну и само собой иметь функцию смены пароля и логина из БД ну ил из другого файла - лишь бы не взломали... | |
|
|
|
|
|
|
|
для: SINtez
(11.08.2005 в 15:23)
| | Работа в 3 шага:
1) Создаем фаил index.php и со следующим содержанием:
<?php
if(!isset($HTTP_POST_VARS['name'])&&!isset($HTTP_POST_VARS['password']))
{
?>
<div align="center"><h1>Опознание Админа.</h1>
<form method="post" action="index.php">
<table border="1">
<tr>
<th> Логин </th>
<td> <input type="text" name="name"> </td>
</tr>
<tr>
<th> Пароль </th>
<td> <input type="password" name="password"> </td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" value="Войти">
</td>
</tr>
</table>
</form></div>
<?php
}
else
{
include_once('config.php');
$query = "select count(*) from admin where
name = '$name' and
pass = '$password'";
$result = mysql_query( $query );
if(!$result)
{
echo 'Невозможно выполнить запрос.';
exit;
}
$count = mysql_result( $result, 0, 0 );
if ( $count > 0 )
{
echo '<h1>Вы на месте!</h1>';
URL=aut_index.html'></HEAD></HTML>";
}
else
{
echo '<h1>Уходите!</h1>';
echo 'Вам не разрешено просматривать этот ресурс.';
}
}
?>
|
2. Создаем фаил config.php со следующим содержанием:
<?php
$dblocation = "localhost"; //адрес б.д.
$dbname = "name_db";//имя базы данных
$dbuser = "login";//твой логин к базе данных
$dbpasswd = "password";//твой пароль к б.д.
$dbcnx = @mysql_connect($dblocation,$dbuser,$dbpasswd);
if (!$dbcnx)
{
echo( "<P>В настоящий момент сервер базы данных не доступен, поэтому корректное отображение страницы невозможно.</P>" );
exit();
}
if (! @mysql_select_db($dbname,$dbcnx) )
{
echo( "<P>В настоящий момент база данных не доступна, поэтому корректное отображение страницы невозможно.</P>" );
exit();
}
//Классная функция на случай повторения соединения с Б.Д.
function puterror($message)
{
echo("<p>$message</p>");
exit();
}
?>
|
3) И таблица в самой базе данных, создай запрос со следующим содержанием:
CREATE TABLE 'admin' (
'name' varchar(10) NOT NULL default '',
'pass' varchar(15) NOT NULL default '',
PRIMARY KEY ('name')
) TYPE=MyISAM;
--
-- Дамп данных таблицы 'admin'
--
INSERT INTO 'auth' VALUES ('login', 'password');
|
Готово, теперь заходи на страницу index.php. | |
|
|
|
|
|
|
|
для: SINtez
(11.08.2005 в 15:23)
| | Работа в 3 шага:
1) Создаем фаил index.php и со следующим содержанием:
<?php
if(!isset($HTTP_POST_VARS['name'])&&!isset($HTTP_POST_VARS['password']))
{
?>
<div align="center"><h1>Опознание Админа.</h1>
<form method="post" action="index.php">
<table border="1">
<tr>
<th> Логин </th>
<td> <input type="text" name="name"> </td>
</tr>
<tr>
<th> Пароль </th>
<td> <input type="password" name="password"> </td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" value="Войти">
</td>
</tr>
</table>
</form></div>
<?php
}
else
{
include_once('config.php');
$query = "select count(*) from admin where
name = '$name' and
pass = '$password'";
$result = mysql_query( $query );
if(!$result)
{
echo 'Невозможно выполнить запрос.';
exit;
}
$count = mysql_result( $result, 0, 0 );
if ( $count > 0 )
{
echo '<h1>Вы на месте!</h1>';
URL=aut_index.html'></HEAD></HTML>";
}
else
{
echo '<h1>Уходите!</h1>';
echo 'Вам не разрешено просматривать этот ресурс.';
}
}
?>
|
2. Создаем фаил config.php со следующим содержанием:
<?php
$dblocation = "localhost"; //адрес б.д.
$dbname = "name_db";//имя базы данных
$dbuser = "login";//твой логин к базе данных
$dbpasswd = "password";//твой пароль к б.д.
$dbcnx = @mysql_connect($dblocation,$dbuser,$dbpasswd);
if (!$dbcnx)
{
echo( "<P>В настоящий момент сервер базы данных не доступен, поэтому корректное отображение страницы невозможно.</P>" );
exit();
}
if (! @mysql_select_db($dbname,$dbcnx) )
{
echo( "<P>В настоящий момент база данных не доступна, поэтому корректное отображение страницы невозможно.</P>" );
exit();
}
//Классная функция на случай повторения соединения с Б.Д.
function puterror($message)
{
echo("<p>$message</p>");
exit();
}
?>
|
3) И таблица в самой базе данных, создай запрос со следующим содержанием:
CREATE TABLE 'admin' (
'name' varchar(10) NOT NULL default '',
'pass' varchar(15) NOT NULL default '',
PRIMARY KEY ('name')
) TYPE=MyISAM;
--
-- Дамп данных таблицы 'admin'
--
INSERT INTO 'auth' VALUES ('login', 'password');
|
Готово, теперь заходи на страницу index.php. | |
|
|
|
|
|
|
|
для: SINtez
(11.08.2005 в 14:20)
| | Вы можете использовать для построения такой системы либо статью http://www.softtime.ru/info/articlephp.php?id_article=34, либо указанную выше тему http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=80, но всех надёжнее будет использовать защиту директории с административной частью средствами Apache, подробнее о которых можно почитать в статье по ссылке http://www.softtime.ru/info/articlephp.php?id_article=27 | |
|
|
|