226 lines
11 KiB
PHP
226 lines
11 KiB
PHP
<?php
|
||
|
||
/* @var $u User */
|
||
|
||
use Core\Config;
|
||
use User\Email;
|
||
use User\Password;
|
||
|
||
if (!defined('GAME')) {
|
||
die();
|
||
}
|
||
|
||
$password = new Password($u->info);
|
||
$email = new Email($u->info);
|
||
$status = null;
|
||
|
||
if ($_POST['oldpsw2']) { // remove psw2
|
||
if (password_verify((int)$_POST['oldpsw2'], $u->info['pass2'])) {
|
||
$u->info['pass2'] = $password->changeSecond(null)['pass2'];
|
||
$status = "<b style='color: darkolivegreen'>Второй пароль выключен.</b><br>";
|
||
} else {
|
||
$status = "<b style='color: red'>Введен не верный второй пароль!</b><br>";
|
||
}
|
||
}
|
||
|
||
if ($_POST['num_count']) { //add psw2
|
||
$arr = $password->changeSecond((int)$_POST['num_count']);
|
||
$status = "<b style='color: red'>Второй пароль: {$arr['pass2']}.<br>
|
||
Запомните или запишите, т.к. он не высылается на email и его нельзя как-либо узнать.
|
||
Потеряв второй пароль, вы потеряете персонажа!<br>
|
||
Этот пароль выслан на ваш email.<br>
|
||
</b><br>";
|
||
$u->info['pass2'] = $arr['hash'];
|
||
}
|
||
|
||
if (
|
||
(
|
||
$_POST['oldpass'] && $_POST['npass'] && $_POST['npass2'] ||
|
||
$_POST['oldpsw'] && $_POST['oldemail'] && $_POST['newemail']
|
||
) &&
|
||
$u->info['securetime'] > time()
|
||
) {
|
||
$status = "<span style='color: red'>Должно пройти не менее трех суток между сменой подтверждения, пароля или email.</span><br>";
|
||
} else {
|
||
if ($_POST['oldpass'] && $_POST['npass'] && $_POST['npass2']) { /*-------Смена пароля--------*/
|
||
if (!password_verify($_POST['oldpass'], $u->info['pass'])) {
|
||
$status = "<span style='color: red;'>Неверный старый пароль.</span><br>";
|
||
} elseif ($_POST['npass'] !== $_POST['npass2']) {
|
||
$status = "<span style='color: red;'>Не совпадают новые пароли.</span><br>";
|
||
} else {
|
||
$u->info['pass'] = $password->changeFirst($_POST['oldpass'], $_POST['npass']);
|
||
$status = "<span style='color: darkolivegreen;'>Пароль удачно сменен.</span><br>";
|
||
}
|
||
}
|
||
|
||
if ($_POST['oldpsw'] && $_POST['oldemail'] && $_POST['newemail']) { /*-----Смена e-mail------*/
|
||
if (password_verify($_POST['oldpsw'], $u->info['pass'])) {
|
||
$status = "<span style='color: red'>Неверный пароль.</span><br>";
|
||
} elseif ($u->info['mail'] !== $_POST['oldemail']) {
|
||
$status = "<span style='color: red'>Неверный старый E-Mail.</span><br>";
|
||
} else {
|
||
$u->info['mail'] = $email->change($_POST['oldemail'], $_POST['newemail']);
|
||
$status = "<span style='color: darkolivegreen;'>Email удачно сменен.</span><br>";
|
||
}
|
||
}
|
||
}
|
||
?>
|
||
|
||
<form action="main.php?security" method="post" id="security"></form>
|
||
|
||
<div>
|
||
<h3>Настройки безопасности</h3>
|
||
<div style="text-align: right">
|
||
<input type="button" value="Вернуться" onClick="location.href='main.php';">
|
||
</div>
|
||
<div><?= $status ?></div>
|
||
<div>
|
||
Чем выше уровень вашего персонажа, тем больше к нему внимания со стороны злоумышленников.
|
||
Чтобы ваш персонаж небыл подвержен взлому, необходимо соблюдать элементарные меры предосторожности.
|
||
<br> А именно:
|
||
<ol>
|
||
<li>
|
||
Никогда, ни под каким предлогом, никому не говорите свой пароль.
|
||
Ни паладинам, ни администрации не нужно знать ваш пароль.
|
||
</li>
|
||
<li>
|
||
Вводите логин и пароль только на титульной странице
|
||
<a href="<?= Config::get('https') ?>" target="_blank"><?= Config::get('https') ?></a>
|
||
Ни на каких других сайтах, которые будут как две капли похожие на наш,
|
||
и куда вас зазывают обещая на халяву предметы или еврокредиты, не вводите свой пароль!
|
||
Иначе Ваш персонаж с вероятностью 95% будет взломан.
|
||
</li>
|
||
</ol>
|
||
Настоятельно рекомендуем прочесть заметку
|
||
<a href="<?= Config::get('https') ?>forum/?r=48&rnd=1" target=_blank>Как обезопасить своего персонажа?</a>.
|
||
<br><br>
|
||
Если вы играете из интернет кафе или компьютерного клуба, где шанс быть взломанным очень высокий,
|
||
рекомендуем включить второй уровень защиты (см. ниже)
|
||
<br><br>
|
||
<fieldset>
|
||
<legend><b>Смена пароля</b></legend>
|
||
<table>
|
||
<tr>
|
||
<td style="text-align: right">
|
||
Старый пароль:
|
||
</td>
|
||
<td>
|
||
<label>
|
||
<input form="security" type=password name="oldpass">
|
||
</label>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td style="text-align: right">
|
||
Новый пароль:
|
||
</td>
|
||
<td>
|
||
<label>
|
||
<input form="security" type=password name="npass">
|
||
</label>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td style="text-align: right">
|
||
Новый пароль (еще раз):
|
||
</td>
|
||
<td>
|
||
<label>
|
||
<input form="security" type=password name="npass2">
|
||
</label>
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<td colspan="2" style="text-align: right">
|
||
<input form="security" type=submit value="Сменить пароль" name="changepsw">
|
||
</td>
|
||
<td></td>
|
||
</tr>
|
||
</table>
|
||
</fieldset>
|
||
|
||
<FIELDSET>
|
||
<LEGEND><B> Смена email </B></LEGEND>
|
||
<TABLE>
|
||
<TR>
|
||
<TD style="text-align: right">
|
||
Ваш игровой пароль:
|
||
</TD>
|
||
<TD>
|
||
<label>
|
||
<INPUT form="security" TYPE=password NAME=oldpsw size=15 maxlength=31>
|
||
</label>
|
||
</TD>
|
||
</TR>
|
||
<TR>
|
||
<TD style="text-align: right">
|
||
Прежний email:
|
||
</TD>
|
||
<TD>
|
||
<label>
|
||
<INPUT form="security" TYPE=text NAME=oldemail size=20 maxlength=50>
|
||
</label>
|
||
</TD>
|
||
</TR>
|
||
<TR>
|
||
<TD style="text-align: right">
|
||
Новый email:
|
||
</TD>
|
||
<TD>
|
||
<label>
|
||
<INPUT form="security" TYPE=text NAME=newemail size=20 maxlength=50>
|
||
</label>
|
||
</TD>
|
||
</TR>
|
||
<TR>
|
||
<TD style="text-align: center" colspan=2>
|
||
<INPUT form="security" TYPE=submit value="Сменить email" name=changeemail>
|
||
</TD>
|
||
</TR>
|
||
</TABLE>
|
||
</FIELDSET>
|
||
<FIELDSET>
|
||
<LEGEND><B> Второй уровень защиты </B></LEGEND>
|
||
Настоятельно рекомендуем включить второй уровень защиты.<BR>
|
||
На компьютере может быть установлен клавиатурный шпион, который записывает все нажатия клавиш, таким
|
||
образом,
|
||
могут узнать ваш пароль.<BR>
|
||
Возможно, в сети компьютеров установлен "сетевой снифер", перехватывающий все интернет пакеты, который легко
|
||
покажет все пароли. Чтобы обезопасить себя, вы можете установить своему персонажу второй пароль, который
|
||
можно
|
||
вводить при помощи мышки (клавиатурным шпионом не перехватить) и который передается на игровой сервер в
|
||
зашифрованном виде, не поддающимся расшифровке ("сетевой снифер" не сможет перехватить его).<BR>
|
||
<U>Будьте внимательны!</U> Второй пароль отправляется на email один раз,при установке второго уровня защиты!<BR>
|
||
|
||
<?php
|
||
if (!empty($u->info['pass2'])) {
|
||
echo "<BR><B>Второй пароль установлен.</B><BR><BR>
|
||
Введите второй пароль <INPUT TYPE=password NAME=oldpsw2 size=10 maxlength=8>
|
||
<INPUT form='security' TYPE=submit name=changepsw value=\"Выключить второй пароль\" onclick=\"return confirm('Выключить запрос второго пароля при входе в Бойцовский Клуб?')\">";
|
||
} else {
|
||
?>
|
||
Длина пароля:<BR>
|
||
<label>
|
||
<INPUT form="security" TYPE=radio NAME="num_count" value=4> 4 знака<BR>
|
||
</label>
|
||
<label>
|
||
<INPUT form="security" TYPE=radio NAME="num_count" checked value=6> 6 знаков<BR>
|
||
</label>
|
||
<label>
|
||
<INPUT form="security" TYPE=radio NAME="num_count" value=8> 8 знаков<BR>
|
||
</label>
|
||
<INPUT form="security" TYPE=submit name=changepsw value="Установить второй пароль"
|
||
onclick="return confirm('Система сама придумает вам второй пароль, он будет показан на этой странице, после того, как вы нажмете OK и продублирован на email, указанный при регистрации. Будьте внимательны.\nУстановить второй пароль?')">
|
||
<BR>
|
||
<?php
|
||
}
|
||
?>
|
||
</FIELDSET>
|
||
</div>
|
||
</div>
|
||
|
||
<script>
|
||
let elem = document.getElementById('se-pre-con');
|
||
elem.parentNode.removeChild(elem);
|
||
</script>
|