[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Пароль в Админку
123456
Суть такова, изменить пароль в админку можно не входя в суму админку, а просто перейдя по специальной ссылке, которая каждый час новая.

Для получения ссылки на смену пароля, запускаем этот скрипт на денвере:
<?php
header('Content-Type: text/html; charset=utf-8');

if (isset($_POST['date']))
echo 'http://ДОМЕН/administration/new_pass-'. md5(sha1('tut_sul' . $_POST['date'])) .'.html';
?>
<form action="" method="post">
<
input type="text" name="date" /> Пример: <b><?=date("d.m.Y.H")?></b> (день.меся.год.час)<br />
<
input type="submit" value="Сгенерировать ссылку" />
</
form>



Когда переходим по этой ссылке, запускается скрипт:
<?php //OK
defined('KEY') or die;

if (isset($_GET['key']))
{
$_GET['key'] = trim($_GET['key']);

if ($_GET['key'] == md5(sha1('tut_sul' . date("d.m.Y.H"))) && $conf_bd['date_last'] < time() - 900)
{
$passw = substr(md5(rand(111111, 999999)), 0, rand(14,20));

q("UPDATE `". BD_PR ."admin`
SET `password` = '"
. bd_passw($passw) ."'
WHERE `id` = '1'"
);

q("UPDATE `". BD_PR ."config`
SET `date_last` = '"
. time() ."'
WHERE `id` = '1'"
);

$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= "From: ". I_HOST ." <". $conf_bd['email_adm'] .">" . "\r\n";
$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";

mail('admin@mail.ru', 'password', 'NEW PASSWORD ' . $passw, $headers);
}
}


include FILE .'/404.html';

?>



Как то так. Безопасно ли это?

т.е. каждый час новая ссылка на смену пароля, сменивать пароль можно не чаще 1 раз в 15 минут. Ссылка генерируется из зашифрованной даты сервера.
Быстрый ответ:

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