Всем добра!
Похожую тему встречал на форуме, но у меня небольшое отличие. Так же, править будем все ручками, т.к. у многих отличаются файлы. У меня например при заказе выплаты так:
После того, как нажимаем Оформить заявку, так:
Итак, начнем. Нам нужны будут следующий файлы:
- classes -> _class.isender.php
- inc -> _login.php
- pages -> account -> _config.php
- pages -> _recovery.php
- pages -> _signup.php
Перед началом проверьте наличие функции в файле classes -> _class.func.php (248-я строка)
Если есть, отлично, нет - добавляем! Функция просто супер, мало того, что она просто делает пароли в MD5, так оно еще добавляет ключ shark_md5. Т.е. shark_md5 можно менять на свое слово и перекодировка ничего не даст злоумышленнику.
1. В файле _class.isender.php в функцию RecoveryPassword, по желанию, добавить следующее:
2. В файле _login.php :
После:
Добавить ниже:
Найти:
Заменить на:
3. В файле _config.php :
Найти:
Заменить на:
Ниже дописать:
Найти:
Заменить на:
В этом же файле поправить платежный пароль:
А в _payments.php изменить:
4. В файле _recovery.php :
Найти:
Заменить на:
5. В файле _signup.php :
Найти:
Изменить на:
Ниже дописать:
Найти:
Изменить на:
6. В базе изменяем поле pass. Ставим тип: VarChar, длинна: 33 и сохраняем.
Сохраняем все и заливаем на сервер! Наслаждаемся безопасной работой!
Кому нужно скину файлы.
P.S. От спасибок не откажусь!
Похожую тему встречал на форуме, но у меня небольшое отличие. Так же, править будем все ручками, т.к. у многих отличаются файлы. У меня например при заказе выплаты так:
Скрытое содержимое для зарегистрированных пользователей!
После того, как нажимаем Оформить заявку, так:
Итак, начнем. Нам нужны будут следующий файлы:
- classes -> _class.isender.php
- inc -> _login.php
- pages -> account -> _config.php
- pages -> _recovery.php
- pages -> _signup.php
Перед началом проверьте наличие функции в файле classes -> _class.func.php (248-я строка)
Код:
public function md5Password($pass){
$pass = strtolower($pass);
return md5("shark_md5"."-".$pass);
}
1. В файле _class.isender.php в функцию RecoveryPassword, по желанию, добавить следующее:
Код:
$text.= "ВНИМАНИЕ - это временный пароль - Не забудте его сменить в меню настройки: <BR />";
После:
Код:
$log_data = $db->FetchArray(); (12-я строка)
Код:
$post_pass = $func->md5Password($_POST["pass"]);
Код:
if(strtolower($log_data["pass"]) == strtolower($_POST["pass"])){ (16-я строка)
Код:
if(strtolower($log_data["pass"]) == strtolower($post_pass)){
Найти:
Код:
$old = $func->IsPassword($_POST["old"]); (19-я строка)
$new = $func->IsPassword($_POST["new"]); (20-я строка)
Код:
$old_pass = $func->IsPassword($_POST["old"]);
$new_pass = $func->IsPassword($_POST["new"]);
Код:
$old = $func->md5Password($old_pass);
$new = $func->md5Password($new_pass);
Код:
if( strtolower($new) == strtolower($_POST["re_new"])) { (29-я строка)
Код:
if( strtolower($new_pass) == strtolower($_POST["re_new"])){
Код:
$plat_pass = $func->md5Password($plat_passs);
Код:
$plat_pass = $func->md5Password($plat_passs);
Найти:
Код:
$newmdPassword = md5($password); (44-я строка)
Код:
$newmdPassword = $func->md5Password($password);
Найти:
Код:
$pass = $func->IsPassword($_POST["pass"]); (141-я строка)
Код:
$pass1 = $func->IsPassword($_POST["pass"]);
Код:
$pass = $func->md5Password($pass1);
Код:
$repass = $func->md5Password($_POST["repass"]);
Код:
if($pass == $_POST["repass"]){ (156-я строка)
Код:
if($pass == $repass){
Сохраняем все и заливаем на сервер! Наслаждаемся безопасной работой!
Кому нужно скину файлы.
P.S. От спасибок не откажусь!
Последнее редактирование:
Vine
Местный
- Сообщения
- 30
- Реакции
- 4
Совершенно верно. Тем более, чтоVine написал(а):Работает, осталось только поставить платежный пароль
Как я понял, благодаря платежному паролю и шифрованию, хакер почти никак не сможет вывести деньги, даже есть у него есть БД?
Если солить все пароли только одной солью, это не есть гуд. Да и соль хранить в базе можно, без проблем => И при том для каждого id свою соль. Просто выборка тяжелее будет, но зато безопаснее. На примере тикетов и GET-запросов очень полезно было бы. Подмена значения в GET на md5 с уникальной солью повысит безопасность до максимума. Я так запилил на своем форуме для постов.
lebmont
Местный
- Сообщения
- 54
- Реакции
- 0
Нужно удалить данные в базе. Получается идет авторизация с солью, а в базе без.lebmont написал(а):изменяет так что не заходит с верным паролем и мд5 пассом тоже, если ставлю в класс этот код
public function md5Password($pass){
$pass = strtolower($pass);
return md5("shark_md5"."-".$pass);
}
то сайт ваще летит
Или где то допустили ошибку.
lebmont
Местный
- Сообщения
- 54
- Реакции
- 0
Нет! Стойте!lebmont написал(а):в бд старую колонку Pass удалить? и какую если че добавлять
Саму базу не трогаем, удаляем только данные.
Как вариант заново зарегистрироваться на другую почту и проверить.
lebmont
Местный
- Сообщения
- 54
- Реакции
- 0
lebmont
Местный
- Сообщения
- 54
- Реакции
- 0
Перед началом проверьте наличие функции в файле classes -> _class.config.php (248-я строка) в этом файле не более 50 строк
class config{
public $HostDB = "localhost";
public $UserDB = "UserDB";
public $PassDB = "PassDB;
public $BaseDB = "BaseDB";
public $SYSTEM_START_TIME = дата старта;
public $VAL = "Руб.";
# PAYEER настройки
public $AccountNumber = 'AccountNumber';
public $apiId = 'apid';
public $apiKey = 'apiKey';
public $shopID = shopID;
public $secretW = "secretW";
}
class config{
public $HostDB = "localhost";
public $UserDB = "UserDB";
public $PassDB = "PassDB;
public $BaseDB = "BaseDB";
public $SYSTEM_START_TIME = дата старта;
public $VAL = "Руб.";
# PAYEER настройки
public $AccountNumber = 'AccountNumber';
public $apiId = 'apid';
public $apiKey = 'apiKey';
public $shopID = shopID;
public $secretW = "secretW";
}
Прошу прощения! В шапке поправил, спасибо что нашли опечатку.lebmont написал(а):вот из за этого и не работало что в конфиг пихал
Ferz
Местный
- Сообщения
- 73
- Реакции
- 3
В файле _recovery.php нету
Найти:
Весь код _recovery.php:
______________
UPD: И если есть киньте рабочий файл, а то с этим что-то не так, письма не отправляет..
Найти:
Код:
$newmdPassword = md5($password); (44-я строка)
Код:
<?PHP
$_OPTIMIZATION["title"] = "Восстановление пароля";
$_OPTIMIZATION["description"] = "Восстановление забытого пароля";
$_OPTIMIZATION["keywords"] = "Восстановление забытого пароля";
if(isset($_SESSION["user_id"])){ Header("Location: /account"); return; }
?>
<div class="s-bk-lf">
<div class="acc-title">Восстановление пароля</div>
</div>
<div class="silver-bk"><div class="clr"></div>
<?PHP
if(isset($_POST["email"])){
if(isset($_SESSION["captcha"]) AND strtolower($_SESSION["captcha"]) == strtolower($_POST["captcha"])){
unset($_SESSION["captcha"]);
$email = $func->IsMail($_POST["email"]);
$time = time();
$tdel = $time + 60*15;
if($email !== false){
$db->Query("DELETE FROM db_recovery WHERE date_del < '$time'");
$db->Query("SELECT COUNT(*) FROM db_recovery WHERE ip = INET_ATON('".$func->UserIP."') OR email = '$email'");
if($db->FetchRow() == 0){
$db->Query("SELECT id, user, email, pass FROM db_users_a WHERE email = '$email'");
if($db->NumRows() == 1){
$db_q = $db->FetchArray();
# Вносим запись в БД
$db->Query("INSERT INTO db_recovery (email, ip, date_add, date_del) VALUES ('$email',INET_ATON('".$func->UserIP."'),'$time','$tdel')");
# Отправляем пароль
$sender = new isender;
$sender -> RecoveryPassword($db_q["email"], $db_q["pass"], $db_q["email"]);
echo "<center><font color = 'green'><b>Данные для входа отправлены на Email</b></font></center>";
?>
</div>
<div class="clr"></div>
<?PHP
return;
}else echo "<center><font color = 'red'><b>Пользователь с таким Email не зарегистрирован</b></font></center>";
}else echo "<center><font color = 'red'><b>На Ваш Email или IP уже был отправлен пароль за последние 15 минут</b></font></center>";
}else echo "<center><font color = 'red'><b>Email указан неверно</b></font></center>";
}else echo "<center><font color = 'red'><b>Символы с картинки введены неверно</b></font></center>";
}
?>
<BR />
<form action="" method="post">
<table width="550" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="left" width="250">Email (На него будет выслан пароль):</td>
<td align="left" width="250"><input name="email" type="text" size="25" maxlength="50" value="<?=(isset($_POST["email"])) ? $_POST["email"] : false; ?>"/></td>
</tr>
<tr>
<td align="left" width="250" style="padding-top:20px;">
<a href="#" onclick="ResetCaptcha(this);"><img src="/captcha.php?rnd=<?=rand(1,10000); ?>" border="0" style="margin:0;"/></a>
</td>
<td align="left" width="250" style="padding-top:20px;">Введите символы с картинки<input name="captcha" type="text" size="25" maxlength="50" /></td>
</tr>
<tr>
<td colspan="2" align="center"><BR /><input type="submit" value="Восстановить" style="height: 30px;"></td>
</tr>
</table>
</form>
</div>
<div class="clr"></div>
UPD: И если есть киньте рабочий файл, а то с этим что-то не так, письма не отправляет..
Держи https://yadi.sk/d/dvnfKmiSjkgDDFerz написал(а):В файле _recovery.php нету
______________
UPD: И если есть киньте рабочий файл, а то с этим что-то не так, письма не отправляет..
Ferz
Местный
- Сообщения
- 73
- Реакции
- 3
За файлик спасибо!APTEMOH написал(а):
И еще, раз тут затронута тема плат. пароля. Есть ли где-нибудь инструкция по установке? Нашел только с заменой файлов (payment.php), заменять никак, а выдергивать код - боюсь что снова все поломаю..
Помню где-то находил, сейчас весь форум перелапатил - ничего не нашел..
fktrctq
Местный
- Сообщения
- 62
- Реакции
- 1
все сделал по интсрукции, но у меня не заходит, пишетAPTEMOH написал(а):Всем добра!
Похожую тему встречал на форуме, но у меня небольшое отличие. Так же, править будем все ручками, т.к. у многих отличаются файлы. У меня например при заказе выплаты так:
Итак, начнем. Нам нужны будут следующий файлы:
- classes -> _class.isender.php
- inc -> _login.php
- pages -> account -> _config.php
- pages -> _recovery.php
- pages -> _signup.php
Перед началом проверьте наличие функции в файле classes -> _class.func.php (248-я строка)
Если есть, отлично, нет - добавляем! Функция просто супер, мало того, что она просто делает пароли в MD5, так оно еще добавляет ключ shark_md5. Т.е. shark_md5 можно менять на свое слово и перекодировка ничего не даст злоумышленнику.Код:public function md5Password($pass){ $pass = strtolower($pass); return md5("shark_md5"."-".$pass); }
1. В файле _class.isender.php в функцию RecoveryPassword, по желанию, добавить следующее:
2. В файле _login.php :Код:$text.= "ВНИМАНИЕ - это временный пароль - Не забудте его сменить в меню настройки: <BR />";
После:Добавить ниже:Код:$log_data = $db->FetchArray(); (12-я строка)
Найти:Код:$post_pass = $func->md5Password($_POST["pass"]);
Заменить на:Код:if(strtolower($log_data["pass"]) == strtolower($_POST["pass"])){ (16-я строка)
3. В файле _config.php :Код:if(strtolower($log_data["pass"]) == strtolower($post_pass)){
Найти:
Заменить на:Код:$old = $func->IsPassword($_POST["old"]); (19-я строка) $new = $func->IsPassword($_POST["new"]); (20-я строка)
Ниже дописать:Код:$old_pass = $func->IsPassword($_POST["old"]); $new_pass = $func->IsPassword($_POST["new"]);
Найти:Код:$old = $func->md5Password($old_pass); $new = $func->md5Password($new_pass);
Заменить на:Код:if( strtolower($new) == strtolower($_POST["re_new"])) { (29-я строка)
В этом же файле поправить платежный пароль:Код:if( strtolower($new_pass) == strtolower($_POST["re_new"])){
А в _payments.php изменить:Код:$plat_pass = $func->md5Password($plat_passs);
4. В файле _recovery.php :Код:$plat_pass = $func->md5Password($plat_passs);
Найти:Заменить на:Код:$newmdPassword = md5($password); (44-я строка)
5. В файле _signup.php :Код:$newmdPassword = $func->md5Password($password);
Найти:Изменить на:Код:$pass = $func->IsPassword($_POST["pass"]); (141-я строка)
Ниже дописать:Код:$pass1 = $func->IsPassword($_POST["pass"]);
Код:$pass = $func->md5Password($pass1);
Найти:Код:$repass = $func->md5Password($_POST["repass"]);
Изменить на:Код:if($pass == $_POST["repass"]){ (156-я строка)
Сохраняем все и заливаем на сервер! Наслаждаемся безопасной работой!Код:if($pass == $repass){
Кому нужно скину файлы.
P.S. От спасибок не откажусь!
Email и/или Пароль указан неверно