Хороним $_COOKIE['pass'], отказываемся от md5('pass'). Это не регистрация, а чёрная дыра!

This commit is contained in:
2023-01-06 16:57:25 +02:00
parent e9ec7eb2f2
commit 9e45f170c7
50 changed files with 1470 additions and 2242 deletions
+213 -498
View File
@@ -1,510 +1,225 @@
<?
echo "
<script language='JavaScript'>
var elem = document.getElementById('se-pre-con');
elem.parentNode.removeChild(elem);
</script>
";
if(!defined('GAME'))
{
die();
}
?>
<TABLE width=100% cellspacing=0 cellpadding=0>
<FORM ACTION="main.php?security" METHOD=POST>
<TR>
<TD><h3>Ñìåíèòü ïàðîëü/email äëÿ ïåðñîíàæà "<?=$u->info['login']?>"</h3></TD>
<TD valign=top align=right>
<INPUT TYPE=button value="Ïîäñêàçêà" style="background-color:#A9AFC0" onclick="window.open('/encicl/help/psw.html', 'help', 'height=300,width=500,location=no,menubar=no,status=no,toolbar=no,scrollbars=yes')">&nbsp;<INPUT TYPE=button value="Âåðíóòüñÿ" onClick="location.href='main.php';"></TD>
</TR></TABLE>
<?
$time=time();
function md5m($src)
{
$tar = Array(16);
$res = Array(16);
$src = utf8_encode ($src);
for ($i = 0; $i < strlen($src) || $i < 16; $i++)
{
$res[$i] = ord($src{$i}) ^ $i * 4;
}
for ($i = 0; $i < 4; $i++)
{
for ($j = 0; $j < 4; $j++)
{
$tar[$i * 4 + $j] = ($res[$j * 4 + $i] + 256) % 256;
}
}
return ($tar);
}
function array2HStr($src)
{
$hex = Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F");
$res = "";
for ($i = 0; $i < 16; $i++)
{
$res = $res . ($hex[$src[$i] >> 4] . $hex[$src[$i] % 16]);
}
return ($res);
}
<?php
/* @var $u User */
if ($_POST['oldpsw2']) {
$_POST['oldpsw2'] = addslashes($_POST['oldpsw2']);
$oldpsw2=md5(array2HStr(md5m($_POST['oldpsw2'])));
if($oldpsw2==$u->info['pass2']){
mysql_query("UPDATE `users` SET `pass2` = '' WHERE `id` = '".mysql_real_escape_string($u->info['id'])."' LIMIT 1;");
echo "<font color=red><b>Âòîðîé ïàðîëü âûêëþ÷åí.<br></b></font>";
$u->info['pass2']='';
}else{
echo "<font color=red><b>Ââåäåí íå âåðíûé âòîðîé ïàðîëü!<br></b></font>";
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['num_count']) {
if($_POST['num_count']==4){$pass2=rand(1000,9999);}elseif($_POST['num_count']==6){$pass2=rand(100000,999999);}else{$pass2=rand(10000000,99999999);}
if(mysql_query("UPDATE `users` SET `pass2` = '".md5(array2HStr(md5m($pass2)))."' WHERE `id` = '".mysql_real_escape_string($u->info['id'])."' LIMIT 1;")){
echo "<font color=red><b>Âòîðîé ïàðîëü: $pass2.<br>Çàïîìíèòå èëè çàïèøèòå, ò.ê. îí íå âûñûëàåòñÿ íà email è åãî íåëüçÿ êàê-ëèáî óçíàòü. Ïîòåðÿâ âòîðîé ïàðîëü, âû ïîòåðÿåòå ïåðñîíàæà!<br>Ýòîò ïàðîëü âûñëàí íà âàø email.<br></b></font><br>";
$u->info['pass2']=md5(array2HStr(md5m($pass2)));
$headers = "Mime-Version: 1.1 \r\n";
$headers .= "Date: ".date("r")." \r\n";
$headers .= "Content-type: text/html; charset=cp1251 \r\n";
$headers .= "From: Íîâûé Áîéöîâñêèé Êëóá <support@new-combats.com>\r\n";
$headers = trim($headers);
$headers = stripslashes($headers);
if (!empty($_SERVER['HTTP_CLIENT_IP'])) //check ip from share internet
{
$ip=$_SERVER['HTTP_CLIENT_IP'];
}
elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) //to check ip is pass from proxy
{
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}
else
{
$ip=$_SERVER['HTTP_X_REAL_IP'];
}
$aa='<html>
<head>
<title>Âòîðîé ïàðîëü îò ïåðñîíàæà '.$u->info['login'].'.</title>
</head>
<body>
Âàìè, ñ IP àäðåñà - '.$ip.', áûë óñòàíîâëåí âòîðîé ïàðîëü â èãðå Áîéöîâñêèé Êëóá.<br>
Åñëè ýòî áûëè íå Âû, ñâÿæèòåñü ñ àäìèíèñòðàöèåé ñàéòà.<br>
<br>
------------------------------------------------------------------<br>
Âàø ëîãèí | '.$u->info['login'].'<br>
Âòîðîé ïàðîëü | '.$pass2.'<br>
------------------------------------------------------------------<br>
<br>
<br>
Æåëàåì Âàì ïðèÿòíîé èãðû. <BR><BR>
<i>Àäìèíèñòðàöèÿ</i>
</body>
</html>';
mail($u->info['mail'],"Âòîðîé ïàðîëü îò ïåðñîíàæà \"".$u->info['login']."\" [".$u->info['level']."]",$aa,$headers);
}
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['oldpass'] && $_POST['npass'] && $_POST['npass2']) {
if($u->info['securetime']>$time) {echo"<font color=red>Äîëæíî ïðîéòè íå ìåíåå òðåõ ñóòîê ìåæäó ñìåíîé ïîäòâåðæäåíèÿ, ïàðîëÿ èëè email.</font><br>";}
elseif($u->info['emailconfirmation']!=-1123) {
if ($u->info['pass'] == md5($_POST['oldpass'])) {
if($_POST['npass'] == $_POST['npass2']) {
if(mysql_query("UPDATE `users` SET `pass` = '".md5($_POST['npass'])."' , `repass` = 0, `securetime` = '".(time()+259200)."' WHERE `id` = '".mysql_real_escape_string($u->info['id'])."' LIMIT 1;"))
{echo "<font color=red>Ïàðîëü óäà÷íî ñìåíåí.</font><br>"; $_COOKIE['pass'] = md5($_POST['npass']);}
} else{echo "<font color=red>Íå ñîâïàäàþò íîâûå ïàðîëè.</font><br>";}
}else{echo "<font color=red>Íåâåðíûé ñòàðûé ïàðîëü.</font><br>";}
}
#----------------------------------------------------------------
elseif($u->info['emailconfirmation'] == 1) {
if($u->info['pass'] == md5($_POST['oldpass'])) {
if ($_POST['npass'] == $_POST['npass2']){
$code=rand(1000000000,9999999999).".".rand(10000,99999);
if(mysql_query("INSERT INTO
`emailconfirmation` (
`id`,
`code`,
`pa_em`,
`pass`)
VALUES (
'".mysql_real_escape_string($u->info['id'])."',
'".mysql_real_escape_string($code)."',
'".md5($_POST['npass'])."',
1)"))
{
/////////////////////////////////////////////////IP///////////////////////////////////////////////
if (!empty($_SERVER['HTTP_CLIENT_IP'])) //check ip from share internet
{
$ip=$_SERVER['HTTP_CLIENT_IP'];
}
elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) //to check ip is pass from proxy
{
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}
else
{
$ip=$_SERVER['HTTP_X_REAL_IP'];
}
//////////////////////////////////////////îòñûëàåì íà ïî÷òó///////////////////////////////////////
$headers = "Mime-Version: 1.1 \r\n";
$headers .= "Date: ".date("r")." \r\n";
$headers .= "Content-type: text/html; charset=utf-8 \r\n";
$headers .= "From: Áîéöîâñêèé Êëóá <support@new-combats.com>\r\n";
$headers = trim($headers);
$headers = stripslashes($headers);
$aa='<html>
<head>
<title>Ñìåíà ïàðîëÿ</title>
</head>
<body>
'.date("d.m.y H:i").'<br>
Êòî-òî ñ IP: '.$ip.' ïûòàåòñÿ ñìåíèòü ïàðîëü ê ïåðñîíàæó "'.$u->info['login'].'" ['.$u->info['level'].'].<br>
Ò.ê. â àíêåòå ó ýòîãî ïåðñîíàæà óêàçàí email: '.$u->info['mail'].', òî âû è ïîëó÷èëè ýòî ïèñüìî.<br>
login: '.$u->info['login'].'<br>
Ïðåæíèé ïàðîëü (áåç êàâû÷åê): "'.$_POST['oldpass'].'"<br>
Íîâûé ïàðîëü (áåç êàâû÷åê): "'.$_POST['npass'].'"<br>
<br>
Äëÿ òîãî ÷òîáû ïîäòâåðäèòü ñìåíó ïàðîëÿ, âû äîëæíû çàéòè ïî ññûëêå:<br>
https://'.$u->info['city'].'.new-combats.com/confirm.php?id='.$u->info['id'].'&code='.$code.'<br>
<br>
--<br>
Áîéöîâñêèé Êëóá https://www.new-combats.com<br>
Àäìèíèñòðàöèÿ Áîéöîâñêîãî Êëóáà: support@new-combats.com<br>
P.S. Äàííîå ïèñüìî ñãåíåðèðîâàíî àâòîìàòè÷åñêè, îòâå÷àòü íà íåãî íå íóæíî.
</body>
</html>';
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'];
}
mail($u->info['mail'],"Ñìåíà ïàðîëÿ ó ïåðñîíàæà \"".$u->info['login']."\" [".$u->info['level']."]",$aa,$headers);
//////////////////////////////////////////////////////////////////////////////////////////////////
echo"<font color=red><b>Íà âàø email âûñëàíî ïèñüìî ñ ïðîñüáîé ïîäòâåðäèòü îïåðàöèþ ñìåíû ïàðîëÿ</b></font><BR>";
}
}else{echo "<font color=red><b>Íå ñîâïàäàþò íîâûå ïàðîëè.</b></font>";}
}else{ echo "<font color=red><b>Íåâåðíûé ñòàðûé ïàðîëü.</b></font>"; }
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>";
}
}
}
#-------------------------------------
}
/*-----Ñìåíà e-mail------*/
if ($_POST['oldpsw'] && $_POST['oldemail'] && $_POST['newemail']) {
if($u->info['securetime']>$time) {echo"<font color=red>Äîëæíî ïðîéòè íå ìåíåå òðåõ ñóòîê ìåæäó ñìåíîé ïîäòâåðæäåíèÿ, ïàðîëÿ èëè email.</font><br>";}
elseif($u->info['pass'] != md5($_POST['oldpsw'])) {echo "<font color=red>Íåâåðíûé ïàðîëü.</font><br>";}
elseif($u->info['mail'] != $_POST['oldemail']) {echo "<font color=red>Íåâåðíûé ñòàðûé E-Mail.</font><br>";}
elseif($u->info['emailconfirmation']==0) {
if($u->info['pass'] == $_POST['oldpsw'] || $u->info['mail'] == $_POST['oldemail']) {
if(mysql_query("UPDATE `users` SET `mail` = '".mysql_real_escape_string($_POST['newemail'])."', `securetime` = '".(time()+259200)."' WHERE `id` = '".mysql_real_escape_string($u->info['id'])."' LIMIT 1;"))
{
echo "<font color=red>E-mail óäà÷íî èçìåíåí.</font><br>";
}
}
else{echo "<font color=red>E-Mail íå èçìåíåí.</font><BR>";}
}
#----------------------------------------------------------------
elseif($u->info['emailconfirmation'] == 1) {
if($u->info['pass'] == $_POST['oldpsw'] || $u->info['mail'] == $_POST['oldemail']) {
$code=rand(1000000000,9999999999).".".rand(10000,99999);
if(mysql_query("INSERT INTO
`emailconfirmation` (
`id`,
`code`,
`pa_em`,
`email`)
VALUES (
'".mysql_real_escape_string($u->info['id'])."',
'".mysql_real_escape_string($code)."',
'".mysql_real_escape_string($_POST['newemail'])."',
1)"))
{
/////////////////////////////////////////////////IP///////////////////////////////////////////////
if (!empty($_SERVER['HTTP_CLIENT_IP'])) //check ip from share internet
{
$ip=$_SERVER['HTTP_CLIENT_IP'];
}
elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) //to check ip is pass from proxy
{
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}
else
{
$ip=$_SERVER['HTTP_X_REAL_IP'];
}
//////////////////////////////////////////îòñûëàåì íà ïî÷òó///////////////////////////////////////
$headers = "Mime-Version: 1.1 \r\n";
$headers .= "Date: ".date("r")." \r\n";
$headers .= "Content-type: text/html; charset=utf-8 \r\n";
$headers .= "From: Áîéöîâñêèé Êëóá <support@new-combats.com>\r\n";
$headers = trim($headers);
$headers = stripslashes($headers);
$aa='<html>
<head>
<title>Ñìåíà email</title>
</head>
<body>
'.date("d.m.y H:i").'<br>
Êòî-òî ñ IP: '.$ip.' ïûòàåòñÿ ñìåíèòü email ê ïåðñîíàæó "'.$u->info['login'].'" ['.$u->info['level'].'].<br>
Ò.ê. â àíêåòå ó ýòîãî ïåðñîíàæà óêàçàí email: '.$u->info['mail'].', òî âû è ïîëó÷èëè ýòî ïèñüìî.<br>
login: '.$u->info['login'].'<br>
Ïðåæíèé email (áåç êàâû÷åê): "'.$_POST['oldemail'].'"<br>
Íîâûé email (áåç êàâû÷åê): "'.$_POST['newemail'].'"<br>
<br>
Äëÿ òîãî ÷òîáû ïîäòâåðäèòü ñìåíó email, âû äîëæíû çàéòè ïî ññûëêå:<br>
https://new-combats.com/confirm.php?id='.$u->info['id'].'&code='.$code.'<br>
<br>
--<br>
Áîéöîâñêèé Êëóá https://www.new-combats.com<br>
Àäìèíèñòðàöèÿ Áîéöîâñêîãî Êëóáà: support@new-combats.com<br>
P.S. Äàííîå ïèñüìî ñãåíåðèðîâàíî àâòîìàòè÷åñêè, îòâå÷àòü íà íåãî íå íóæíî.
</body>
</html>';
mail($u->info['mail'],"Ñìåíà email ó ïåðñîíàæà \"".$u->info['login']."\" [".$u->info['level']."]",$aa,$headers);
//////////////////////////////////////////////////////////////////////////////////////////////////
echo"<font color=red><b>Íà âàø email âûñëàíî ïèñüìî ñ ïðîñüáîé ïîäòâåðäèòü îïåðàöèþ ñìåíû email</b></font><BR>";
}
}else{ echo "<font color=red><b>Íåâåðíûé ñòàðûé ïàðîëü èëè email.</b></font><br>"; }
}
#-------------------------------------
}
/*----Âîïðîñ/Îòâåò------*/
/* if ($_POST['oldpsw1']) {
$ops = mysql_fetch_array(mysql_query("SELECT `pass`, `securetime`, `emailconfirmation` FROM `users` WHERE `id` = '".mysql_real_escape_string($u->info['id'])."'"));
if($u->info['securetime']>$time) {echo"<font color=red>Äîëæíî ïðîéòè íå ìåíåå òðåõ ñóòîê ìåæäó ñìåíîé ïîäòâåðæäåíèÿ, ïàðîëÿ èëè email.</font><br>";}
elseif($u->info['emailconfirmation']==0) {
if ($u->info['pass'] == md5($_POST['oldpsw1'])) {
if(mysql_query("UPDATE `users` SET `a1` = '".mysql_real_escape_string($_POST['secretquestion'])."', `q1` = '".mysql_real_escape_string($_POST['secretanswer'])."', `securetime` = '".(time()+259200)."' WHERE `id` = '".mysql_real_escape_string($u->info['id'])."' LIMIT 1;"))
{
$u->info['secretquestion'] = $_POST['secretquestion'];
echo "<font color=red>Íîâûé ñåêðåòíûé âîïðîñ / îòâåò çàïèñàí.</font><br>";
}
}
else{echo "<font color=red>Íåâåðíûé ñòàðûé ïàðîëü.</font><BR>";}
}
#----------------------------------------------------------------
elseif($u->info['emailconfirmation'] == 1) {
if($u->info['pass'] == md5($_POST['oldpsw1'])) {
$code=rand(1000000000,9999999999).".".rand(10000,99999);
if(mysql_query("INSERT INTO
`emailconfirmation` (
`id`,
`code`,
`question`,
`answer`,
`qu_an`)
VALUES (
'".mysql_real_escape_string($u->info['id'])."',
'".mysql_real_escape_string($code)."',
'".mysql_real_escape_string($_POST['secretquestion'])."',
'".mysql_real_escape_string($_POST['secretanswer'])."',
1)"))
{
/////////////////////////////////////////////////IP///////////////////////////////////////////////
if (!empty($_SERVER['HTTP_CLIENT_IP'])) //check ip from share internet
{
$ip=$_SERVER['HTTP_CLIENT_IP'];
}
elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) //to check ip is pass from proxy
{
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}
else
{
$ip=$_SERVER['HTTP_X_REAL_IP'];
}
//////////////////////////////////////////îòñûëàåì íà ïî÷òó///////////////////////////////////////
$headers = "Mime-Version: 1.1 \r\n";
$headers .= "Date: ".date("r")." \r\n";
$headers .= "Content-type: text/html; charset=utf-8 \r\n";
$headers .= "From: Áîéöîâñêèé Êëóá <support@new-combats.com>\r\n";
$headers = trim($headers);
$headers = stripslashes($headers);
$aa='<html>
<head>
<title>Ñìåíà ñåêðåòíîãî âîïðîñà è îòâåòà</title>
</head>
<body>
'.date("d.m.y H:i").'<br>
Êòî-òî ñ IP: '.$ip.' ïûòàåòñÿ ñìåíèòü ñåêðåòíûé âîïðîñ / îòâåò ê ïåðñîíàæó "'.$u->info['login'].'" ['.$u->info['level'].'].
Ò.ê. â àíêåòå ó ýòîãî ïåðñîíàæà óêàçàí email: '.$u->info['mail'].', òî âû è ïîëó÷èëè ýòî ïèñüìî.<br>
login: '.$u->info['login'].'<br>
Ïðåæíèé ñåêðåòíûé âîïðîñ: '.$u->info['secretquestion'].'<br>
Ïðåæíèé ñåêðåòíûé îòâåò: '.$u->info['secretanswer'].'<br>
Íîâûé ñåêðåòíûé âîïðîñ: '.$_POST['secretquestion'].'<br>
Íîâûé ñåêðåòíûé îòâåò: '.$_POST['secretanswer'].'<br>
Äëÿ òîãî ÷òîáû ïîäòâåðäèòü ñìåíó, âû äîëæíû çàéòè ïî ññûëêå:<br>
https://'.$u->info['city'].'.new-combats.com/confirm.php?id='.$u->info['id'].'&code='.$code.'<br>
<br>
--<br>
Áîéöîâñêèé Êëóá https://www.new-combats.com<br>
Àäìèíèñòðàöèÿ Áîéöîâñêîãî Êëóáà: support@new-combats.com<br>
P.S. Äàííîå ïèñüìî ñãåíåðèðîâàíî àâòîìàòè÷åñêè, îòâå÷àòü íà íåãî íå íóæíî.
</body>
</html>';
mail($u->info['mail'],"Ñìåíà ñåêðåòíîãî âîïðîñà è îòâåòà ó ïåðñîíàæà \"".$u->info['login']."\" [".$u->info['level']."]",$aa,$headers);
//////////////////////////////////////////////////////////////////////////////////////////////////
echo"<font color=red>Íà âàø email âûñëàíî ïèñüìî ñ ïðîñüáîé ïîäòâåðäèòü îïåðàöèþ ñìåíû ñåêðåòíîãî âîïðîñà è îòâåòà</font><BR>";
}
}else{ echo "<font color=red>Íåâåðíûé ñòàðûé ïàðîëü.</font><br>"; }
}
#-------------------------------------
$u->info['a1'] = $_POST['secretquestion'];
/* }
/*----Ïîäòâåðæäåíèå íà e-mail----*/
if ($_POST['email'] && $_POST['set_on_emailconfirmation']) {
if($u->info['securetime']>$time) {echo"<font color=red>Äîëæíî ïðîéòè íå ìåíåå òðåõ ñóòîê ìåæäó ñìåíîé ïîäòâåðæäåíèÿ, ïàðîëÿ èëè email.</font><BR>";}
elseif ($u->info['mail'] == $_POST['email']) {
$code=rand(1000000000,9999999999).".".rand(10000,99999);
if(mysql_query("INSERT INTO
`emailconfirmation` (
`id`,
`code`,
`active`)
VALUES (
'".mysql_real_escape_string($u->info['id'])."',
'".mysql_real_escape_string($code)."',
1)"))
{
/////////////////////////////////////////////////IP///////////////////////////////////////////////
if (!empty($_SERVER['HTTP_CLIENT_IP'])) //check ip from share internet
{
$ip=$_SERVER['HTTP_CLIENT_IP'];
}
elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) //to check ip is pass from proxy
{
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}
else
{
$ip=$_SERVER['HTTP_X_REAL_IP'];
}
//////////////////////////////////////////îòñûëàåì íà ïî÷òó///////////////////////////////////////
$headers = "Mime-Version: 1.1 \r\n";
$headers .= "Date: ".date("r")." \r\n";
$headers .= "Content-type: text/html; charset=utf-8 \r\n";
$headers .= "From: Áîéöîâñêèé Êëóá <support@new-combats.com>\r\n";
$headers = trim($headers);
$headers = stripslashes($headers);
$aa='<html>
<head>
<title>Âîñòàíîâëåíèå ïàðîëÿ</title>
</head>
<body>
'.date("d.m.y H:i").'<br>
Çàïðîñ ïîñòóïèë ñ IP: '.$ip.'<br>
Ò.ê. â àíêåòå ó ýòîãî ïåðñîíàæà óêàçàí email: '.$u->info['mail'].', òî âû è ïîëó÷èëè ýòî ïèñüìî.<br>
Äëÿ òîãî ÷òîáû âêëþ÷èòü ôóíêöèþ ïîäòâåðæäåíèÿ ñìåíû ïàðîëÿ è email ÷åðåç ïî÷òó, âû äîëæíû çàéòè ïî ññûëêå:<br>
https://'.$u->info['city'].'.new-combats.com/confirm.php?id='.$u->info['id'].'&code='.$code.'<br>
<br>
--<br>
Áîéöîâñêèé Êëóá https://www.new-combats.com<br>
Àäìèíèñòðàöèÿ Áîéöîâñêîãî Êëóáà: support@new-combats.com<br>
P.S. Äàííîå ïèñüìî ñãåíåðèðîâàíî àâòîìàòè÷åñêè, îòâå÷àòü íà íåãî íå íóæíî.
</body>
</html>';
mail($u->info['mail'],"Ñìåíà ïîäòâåðæäåíèÿ ó ïåðñîíàæà \"".$u->info['login']."\" [".$u->info['level']."]",$aa,$headers);
//////////////////////////////////////////////////////////////////////////////////////////////////
echo "<font color=red>Íà âàø email âûñëàíî ïèñüìî ñ ïðîñüáîé ïîäòâåðäèòü îïåðàöèþ.</font><BR>";
}
}
else{echo "<font color=red>email óêàçàí íåâåðíî.</font><BR>";}
}
if ($_POST['email'] && $_POST['set_off_emailconfirmation']) { //Îòêëþ÷åíèå ïîäòâåðæäåíèÿ íà email
if($u->info['securetime']>$time) {echo"<font color=red>Äîëæíî ïðîéòè íå ìåíåå òðåõ ñóòîê ìåæäó ñìåíîé ïîäòâåðæäåíèÿ, ïàðîëÿ èëè email.</font><BR>";}
/*ÍÅÄÎÄÅËÀÍÎ */
}
?>
×åì âûøå óðîâåíü âàøåãî ïåðñîíàæà, òåì áîëüøå ê íåìó âíèìàíèÿ ñî ñòîðîíû çëîóìûøëåííèêîâ. ×òîáû âàø ïåðñîíàæ íåáûë ïîäâåðæåí âçëîìó, íåîáõîäèìî ñîáëþäàòü ýëåìåíòàðíûå ìåðû ïðåäîñòîðîæíîñòè. À èìåííî:<br>
1. Íèêîãäà, íè ïîä êàêèì ïðåäëîãîì, íèêîìó íå ãîâîðèòå ñâîé ïàðîëü. Íè ïàëàäèíàì, íè àäìèíèñòðàöèè íå íóæíî çíàòü âàø ïàðîëü.<br>
2. Ââîäèòå ëîãèí è ïàðîëü òîëüêî íà òèòóëüíîé ñòðàíèöå <a href=https://new-combats.com target="_blank">https://new-combats.com</a> Íè íà êàêèõ äðóãèõ ñàéòàõ, êîòîðûå áóäóò êàê äâå êàïëè ïîõîæèå íà íàø, è êóäà âàñ çàçûâàþò îáåùàÿ íà õàëÿâó ïðåäìåòû èëè åâðîêðåäèòû, íå ââîäèòå ñâîé ïàðîëü! Èíà÷å Âàø ïåðñîíàæ ñ âåðîÿòíîñòüþ 95% áóäåò âçëîìàí.<br>
Íàñòîÿòåëüíî ðåêîìåíäóåì ïðî÷åñòü çàìåòêó <A HREF="https://new-combats.com/forum/?r=48&rnd=1" target=_blank>Êàê îáåçîïàñèòü ñâîåãî ïåðñîíàæà?</A>.<BR>
<BR>Åñëè âû èãðàåòå èç èíòåðíåò êàôå èëè êîìïüþòåðíîãî êëóáà, ãäå øàíñ áûòü âçëîìàííûì î÷åíü âûñîêèé, ðåêîìåíäóåì âêëþ÷èòü âòîðîé óðîâåíü çàùèòû (ñì. íèæå)<br><br>
<fieldset>
<legend><b>Ñìåíà ïàðîëÿ</b></legend>
<table>
<tr><td align=right>Ñòàðûé ïàðîëü:</td><td><input type=password name="oldpass"></td></tr>
<tr><td align=right>Íîâûé ïàðîëü:</td><td><input type=password name="npass"></td></tr>
<tr><td align=right>Íîâûé ïàðîëü (åùå ðàç):</td><td><input type=password name="npass2"></td></tr>
<tr><td align=right><input type=submit value="Ñìåíèòü ïàðîëü" name="changepsw"></td><td></td></tr>
</table>
</fieldset>
</FORM>
<FORM ACTION="main.php?security" METHOD=POST>
<FIELDSET><LEGEND><B> Ñìåíà email </B> </LEGEND>
<TABLE>
<TR><TD align=right>Âàø èãðîâîé ïàðîëü:</TD><TD><INPUT TYPE=password NAME=oldpsw size=15 maxlength=31></TD></TR>
<TR><TD align=right>Ïðåæíèé email:</TD><TD><INPUT TYPE=text NAME=oldemail size=20 maxlength=50></TD></TR>
<TR><TD align=right>Íîâûé email:</TD><TD><INPUT TYPE=text NAME=newemail size=20 maxlength=50></TD></TR>
<TR><TD align=center colspan=2><INPUT TYPE=submit value="Ñìåíèòü email" name=changeemail></TD></TR>
</TABLE>
</FIELDSET>
</FORM>
<!--<FORM ACTION="main.php?security" METHOD=POST>
<FIELDSET><LEGEND><B> Âòîðîé óðîâåíü çàùèòû </B> </LEGEND>
<?
echo"Åñëè âû óâåðåíû â ñâîåì email, åãî íå âçëîìàþò (ó÷òèòå, õàëÿâíàÿ ïî÷òà íà ñåðâåðàõ òèïà mail.ru hotmail.com è ò.ï. ëåãêî âçëàìûâàåòñÿ), âû åãî íå \"çàáóäåòå\", îí íå ïðîïàäåò ïðè ñìåíå ïðîâàéäåðà è ò.ï., òîãäà âû ìîæåòå îáåçîïàñèòü ñâîåãî ïåðñîíàæà, âêëþ÷èâ ðåæèì ïîäòâåðæäåíèÿ ñìåíû ïàðîëÿ/email ÷åðåç ïî÷òó. Ïðè ïîïûòêå ñìåíèòü ïàðîëü, email èëè âûêëþ÷èòü ýòîò ðåæèì, íà âàø email âûñûëàåòñÿ ïèñüìî ñ ïðîñüáîé ïîäòâåðäèòü ýòó îïåðàöèþ. Òàêèì îáðàçîì, åñëè õàêåð, êàê-òî óçíàë âàø ïàðîëü, îí íå ñìîæåò ñìåíèòü åãî, è âû âñåãäà ñìîæåòå âîéòè ïîä ñâîèì ïåðñîíàæåì.<BR>";
if($u->info['emailconfirmation']==0) {?>
Âàø email <INPUT TYPE=text NAME=email size=20 maxlength=50><BR>
<INPUT TYPE=submit name=set_on_emailconfirmation value="Âêëþ÷èòü ðåæèì ïîäòâåðæäåíèÿ ñìåíû ïàðîëÿ èëè email ÷åðåç ïî÷òó">
<?}elseif($u->info['emailconfirmation']==1){?>
<BR><B>Ðåæèì ïîäòâåðæäåíèÿ ÷åðåç email âêëþ÷åí.</B><BR><BR>
Âàø email <INPUT TYPE=text NAME=email size=20 maxlength=50> <INPUT TYPE=submit name=set_off_emailconfirmation value="Âûêëþ÷èòü ðåæèì ïîäòâåðæäåíèÿ ÷åðåç email"><BR>
<small>Åñëè âàø email áîëüøå íå ðàáîòàåò, âû ìîæåòå îòêëþ÷èòü åãî çäåñü áåç ïîäòâåðæäåíèÿ, â òå÷åíèå <b>÷àñà</b> ïîñëå ïîëó÷åíèÿ ïðîâåðêè íà ÷èñòîòó ó ïàëàäèíîâ.</small>
<?}?>
</FIELDSET>
</FORM>-->
<FORM METHOD=POST ACTION="main.php?security">
<FIELDSET><LEGEND><B> Âòîðîé óðîâåíü çàùèòû </B> </LEGEND>
Íàñòîÿòåëüíî ðåêîìåíäóåì âêëþ÷èòü âòîðîé óðîâåíü çàùèòû.<BR>
Íà êîìïüþòåðå ìîæåò áûòü óñòàíîâëåí êëàâèàòóðíûé øïèîí, êîòîðûé çàïèñûâàåò âñå íàæàòèÿ êëàâèø, òàêèì îáðàçîì, ìîãóò óçíàòü âàø ïàðîëü.<BR>
Âîçìîæíî, â ñåòè êîìïüþòåðîâ óñòàíîâëåí "ñåòåâîé ñíèôåð", ïåðåõâàòûâàþùèé âñå èíòåðíåò ïàêåòû, êîòîðûé ëåãêî ïîêàæåò âñå ïàðîëè. ×òîáû îáåçîïàñèòü ñåáÿ, âû ìîæåòå óñòàíîâèòü ñâîåìó ïåðñîíàæó âòîðîé ïàðîëü, êîòîðûé ìîæíî ââîäèòü ïðè ïîìîùè ìûøêè (êëàâèàòóðíûì øïèîíîì íå ïåðåõâàòèòü) è êîòîðûé ïåðåäàåòñÿ íà èãðîâîé ñåðâåð â çàøèôðîâàííîì âèäå, íå ïîääàþùèìñÿ ðàñøèôðîâêå ("ñåòåâîé ñíèôåð" íå ñìîæåò ïåðåõâàòèòü åãî).<BR>
Âàø áðàóçåð äîëæåí íîðìàëüíî îòîáðàæàòü Flash 6! (<I>åñëè íàøè ÷àñèêè â íèæíåé ñòðîêå íîðìàëüíî òèêàþò, çíà÷èò ó âàñ âñå â ïîðÿäêå :</I>)<BR>
<U>Áóäüòå âíèìàòåëüíû!</U> Âòîðîé ïàðîëü îòïðàâëÿåòñÿ íà email îäèí ðàç,ïðè óñòàíîâêå âòîðîãî óðîâíÿ çàùèòû!<BR>
<?
if(!empty($u->info['pass2'])){echo"<BR><B>Âòîðîé ïàðîëü óñòàíîâëåí.</B><BR><BR>Ââåäèòå âòîðîé ïàðîëü <INPUT TYPE=password NAME=oldpsw2 size=10 maxlength=8> <INPUT TYPE=submit name=changepsw value=\"Âûêëþ÷èòü âòîðîé ïàðîëü\" onclick=\"return confirm('Âûêëþ÷èòü çàïðîñ âòîðîãî ïàðîëÿ ïðè âõîäå â Áîéöîâñêèé Êëóá?')\">";}else{
?>
Äëèíà ïàðîëÿ:<BR>
<INPUT TYPE=radio NAME="num_count" value=4> 4 çíàêà<BR>
<INPUT TYPE=radio NAME="num_count" checked value=6> 6 çíàêîâ<BR>
<INPUT TYPE=radio NAME="num_count" value=8> 8 çíàêîâ<BR>
<INPUT TYPE=submit name=changepsw value="Óñòàíîâèòü âòîðîé ïàðîëü" onclick="return confirm('Ñèñòåìà ñàìà ïðèäóìàåò âàì âòîðîé ïàðîëü, îí áóäåò ïîêàçàí íà ýòîé ñòðàíèöå, ïîñëå òîãî, êàê âû íàæìåòå OK è ïðîäóáëèðîâàí íà email, óêàçàííûé ïðè ðåãèñòðàöèè. Áóäüòå âíèìàòåëüíû.\nÓñòàíîâèòü âòîðîé ïàðîëü?')"><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>";
}
}
}
?>
</FIELDSET>
</FORM>
<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>