kaliostro_den 2 Опубликовано: 28 апреля 2008 Рассказать Опубликовано: 28 апреля 2008 Данный хак(модуль) даёт возможность восстановление пароля не только через мыло, но и посредством секретного вопроса. вообщем в архиве есьт док по установки, но написан уже для немного опытных людей которые знаю как сделать запрос в базу и что такое прификс. Вообще если посмотреть то он будет работать с весрии после которой стали применять двойное хэширование md5(md5()), по моему это 4-ка с чем-то была, точнее посмотерл это 4.3 Скачать P.S. возможны небольшие ошибки, так как сильно не гонял, написал, поставил, проверил работает и всё. Так что тестирование возлогаю на всех вас. Пишите всё что найдёте исправлю. Цитата Ссылка на сообщение Поделиться на других сайтах
suslik 0 Опубликовано: 26 августа 2008 Рассказать Опубликовано: 26 августа 2008 (изменено) 3. Открыть файл modules/register.php Найти: if(!defined('DATALIFEENGINE')) { die("Hacking attempt!"); } Ниже сделать копию настройек из 1-ого файла. Из какого первого, и какие настройки? не по русски, нет завязки в предложении с вышенаписанным Изменено 26 августа 2008 пользователем suslik Цитата Ссылка на сообщение Поделиться на других сайтах
MSW 1 Опубликовано: 26 августа 2008 Рассказать Опубликовано: 26 августа 2008 (изменено) suslik как я понял имелось ввиду: // Module Configuration $lost_advance = 1; // 1-выключить модуль, 0-выключить $requred_answer = 1; //Поле ответа будет обязательным для заполнения $question_array = array( "Девичья фамилия матери", "Любимое блюдо", "Почтовый индекс родителей", "Дата рождения бабушки", "Любимый номер телеофна", "Номер паспорта", ); $lost_method = 1; // 1-пользователь сам водит новый пароль, 0-пароль генерируется автоматически //////////////////////// из файла lost_advance.php так оно и есть теперь вопрос: это работает для пользователей который зарегистрируются после установки данного модуля. как добавить эти поля тем кто уже зарегистрирован? Изменено 26 августа 2008 пользователем MSW Цитата Ссылка на сообщение Поделиться на других сайтах
kaliostro_den 2 Опубликовано: 26 августа 2008 Рассказать Опубликовано: 26 августа 2008 Автор это работает для пользователей который зарегистрируются после установки данного модуля. угу как добавить эти поля тем кто уже зарегистрирован? Поля у них есть, только они пустые. Если добавить еще 2 поля в профеле, это вопрос и ответ для восттановления и чтобы старые пользователи их заполнили. Цитата Ссылка на сообщение Поделиться на других сайтах
MSW 1 Опубликовано: 26 августа 2008 Рассказать Опубликовано: 26 августа 2008 kaliostro, добавил, в нужное место по дизайну, в userinfo.tpl: <tr> <td width="130" height="25">Вопрос для восстановления пароля</td> <td>{questions}</td> </tr> <tr> <td width="130" height="25">ответ на вопрос</td> <td><input type="text" name="answer" class="f_input" /></td> </tr> а вот как правильно добавить в engine\modules\profile.php? Цитата Ссылка на сообщение Поделиться на других сайтах
kaliostro_den 2 Опубликовано: 26 августа 2008 Рассказать Опубликовано: 26 августа 2008 (изменено) Автор Открыть файл modules/profile.php Найти:if(!defined('DATALIFEENGINE')) { die("Hacking attempt!"); } Ниже сделать копию настройек из файла lost_advance.CODE. После $tpl->set('{edituser}',"[ <a href=\"java script:ShowOrHide('options')\">".$lang['news_option']."</a> ]"); Вставить такое if ($lost_advance && $question_array) { $questions = "<select name=\"question\" >\n"; foreach ($question_array as $num=>$quest) { $questions .= "<option value=\"$num\"".(($quest == $row['question'])?' checked="checked" ':'')." >$quest</option>"; } $questions .= "</select>"; $tpl->set("{questions}", $questions); } $tpl->set("{answer}", $row['answer']); Найти $sql_user = "UPDATE " . USERPREFIX . "_users set fullname='$fullname', land='$land', icq='$icq', email='$email', info='$info', signature='$signature', password='$password1', allow_mail='$allow_mail', xfields='$filecontents', allowed_ip='$allowed_ip' where name='$user'"; Заменить на $sql_user = "UPDATE " . USERPREFIX . "_users set fullname='$fullname', land='$land', icq='$icq', email='$email', info='$info', signature='$signature', password='$password1', allow_mail='$allow_mail', xfields='$filecontents', allowed_ip='$allowed_ip', question='".$db->safesql($question_array[intval($_REQUEST['question'])])."', answer='".$db->safesql(trim($_REQUEST['answer']))."' where name='$user'"; Найти $sql_user = "UPDATE " . USERPREFIX . "_users set fullname='$fullname', land='$land', icq='$icq', email='$email', info='$info', signature='$signature', allow_mail='$allow_mail', xfields='$filecontents', allowed_ip='$allowed_ip' where name='$user'"; Заменить на $sql_user = "UPDATE " . USERPREFIX . "_users set fullname='$fullname', land='$land', icq='$icq', email='$email', info='$info', signature='$signature', allow_mail='$allow_mail', xfields='$filecontents', allowed_ip='$allowed_ip', question='".$db->safesql($question_array[intval($_REQUEST['question'])])."', answer='".$db->safesql(trim($_REQUEST['answer']))."' where name='$user'"; в шаблоне вместо <tr> <td width="130" height="25">ответ на вопрос</td> <td><input type="text" name="answer" class="f_input" /></td> </tr> Вставь <tr> <td width="130" height="25">ответ на вопрос</td> <td><input type="text" name="answer" value="{answer}" class="f_input" /></td> </tr> Изменено 26 августа 2008 пользователем kaliostro Цитата Ссылка на сообщение Поделиться на других сайтах
MSW 1 Опубликовано: 26 августа 2008 Рассказать Опубликовано: 26 августа 2008 kaliostro, спасибо! работает! единственное неудобство: при последующем редактировании профиля сбрасывается опять на первый вариант вопроса. может сделать первую строку вариантов пустой? и при редактировании профиля проверку вставить - если пустая строка в вопросе то не изменять этот параметр? Цитата Ссылка на сообщение Поделиться на других сайтах
kaliostro_den 2 Опубликовано: 26 августа 2008 Рассказать Опубликовано: 26 августа 2008 Автор Посомтри я уже поправил у себя, 1-ая вставка уже другая, теперь он должен ставит нужный вопрос. Цитата Ссылка на сообщение Поделиться на других сайтах
MSW 1 Опубликовано: 26 августа 2008 Рассказать Опубликовано: 26 августа 2008 (изменено) к сожалению тоже самое... После: if (!$icq) $icq = ""; Вставить: $question = $db->safesql($question_array[intval($_REQUEST['question'])]); $answer = $db->safesql(trim($_REQUEST['answer'])); После xfields='$filecontents', allowed_ip='$allowed_ip' Добавить:(2 раза) , question='$question', answer='$answer' Это вместо: question='".$db->safesql($question_array[intval($_REQUEST['question'])])."', answer='".$db->safesql(trim($_REQUEST['answer']))."' Так просто немножко красивше будет и не будет сильно выделятся от стиля кода в движке Изменено 26 августа 2008 пользователем MSW Цитата Ссылка на сообщение Поделиться на других сайтах
kaliostro_den 2 Опубликовано: 27 августа 2008 Рассказать Опубликовано: 27 августа 2008 (изменено) Автор ну да, вот немного ошибся. Смени это $questions .= "<option value=\"$num\"".(($quest == $row['question'])?' checked="checked" ':'')." >$quest</option>"; на $questions .= "<option value=\"$num\"".(($quest == $row['question'])?' selected ':'')." >$quest</option>"; Изменено 27 августа 2008 пользователем kaliostro Цитата Ссылка на сообщение Поделиться на других сайтах
MSW 1 Опубликовано: 27 августа 2008 Рассказать Опубликовано: 27 августа 2008 kaliostro, Всё супер! теперь осталось собрать всё красиво в один мануал большое спасибо! Цитата Ссылка на сообщение Поделиться на других сайтах
Budrin 1 Опубликовано: 20 июля 2009 Рассказать Опубликовано: 20 июля 2009 хм... ссылка на скачивание битая... есть у кого нибудь данный хак? Цитата Ссылка на сообщение Поделиться на других сайтах
kaliostro_den 2 Опубликовано: 20 июля 2009 Рассказать Опубликовано: 20 июля 2009 Автор хм... ссылка на скачивание битая... есть у кого нибудь данный хак? http://forum.kaliostro.net/announcement.php?f=13&a=8 Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.