Сборка REDL: панель на PHP 8, капча-тумблер, закрытые уязвимости, установщики в один клик

- панель работает на PHP 8.4 (оригинал под PHP 7.0): elFinder utf8_encode, apache_get_modules, warnings
- капча выключена и управляется из админки (флаг captcha_enable + блок настроек)
- закрыты две SQL-инъекции без авторизации (createAuthLog: пароль из POST и CF-Connecting-IP)
- убрано хранение паролей в открытом виде в authlog, XSS в поле ref
- установщики install-panel.sh и install-node.sh (оригинальный затирал sources.list репозиториями Debian 9)
- современный Dockerfile (оригинальный на debian:stretch больше не собирается)
- планировщик и автозапуск работают без systemd
- брендинг REDL.IO, год 2026, ссылки на redl.io
- документация на русском: ИЗМЕНЕНИЯ, БЕЗОПАСНОСТЬ, ИНСТРУКЦИЯ
This commit is contained in:
2026-07-30 02:00:01 +00:00
commit 6ee2744e3a
492 changed files with 354172 additions and 0 deletions
@@ -0,0 +1,139 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width"/>
<style>
* {
margin: 0;
padding: 0;
font-size: 100%;
font-family: 'Avenir Next', "Helvetica Neue", "Helvetica", Helvetica, Arial, sans-serif;
line-height: 1.65; }
img {
max-width: 100%;
margin: 0 auto;
display: block; }
body,
.body-wrap {
width: 100% !important;
height: 100%;
background: #efefef;
-webkit-font-smoothing: antialiased;
-webkit-text-size-adjust: none; }
a {
color: #8950FC;
text-decoration: none; }
.text-center {
text-align: center; }
.text-right {
text-align: right; }
.text-left {
text-align: left; }
.button {
display: inline-block;
color: white;
background: #8950FC;
border: solid #8950FC;
border-width: 10px 20px 8px;
font-weight: bold;
border-radius: 4px; }
h1, h2, h3, h4, h5, h6 {
margin-bottom: 20px;
line-height: 1.25; }
h1 {
font-size: 32px; }
h2 {
font-size: 28px; }
h3 {
font-size: 24px; }
h4 {
font-size: 20px; }
h5 {
font-size: 16px; }
p, ul, ol {
font-size: 16px;
font-weight: normal;
margin-bottom: 20px; }
.container {
display: block !important;
clear: both !important;
margin: 0 auto !important;
max-width: 680px !important; }
.container table {
width: 100% !important;
border-collapse: collapse; }
.container .masthead {
padding: 40px 0;
background: #8950FC;
color: white; }
.container .masthead h1 {
margin: 0 auto !important;
max-width: 90%;
text-transform: uppercase; }
.container .content {
background: white;
padding: 30px 35px; }
.container .content.footer {
background: none; }
.container .content.footer p {
margin-bottom: 0;
color: #888;
text-align: center;
font-size: 14px; }
.container .content.footer a {
color: #888;
text-decoration: none;
font-weight: bold; }
</style>
</head>
<body>
<table class="body-wrap">
<tr>
<td class="container">
<table>
<tr>
<td align="center" class="masthead">
<h1>REDL.IO</h1>
<p style="margin:4px 0 0;font-size:13px;color:#ffffff;">Хостинг с искусственным интеллектом</p>
</td>
</tr>
<tr>
<td class="content">
<center><h2>Здравствуйте, <?php echo $lastname ?> <?php echo $firstname ?>!</h2>
<p>Если вы не пытались сменить E-Mail, проигнорируйте данное сообщение и смените пароль от аккаунта!<br>
Новый E-Mail: <?php echo $new_email ?><br>Ключ для смены E-Mail: <b><?php echo $key ?></b></p>
</center>
<table>
<tr>
<td align="center">
<p>
<a href="<?php echo $url ?>main/acc/change_email_verifity/<?php echo $userid ?>/<?php echo $key ?>" target="_blank" style="color:white;" class="button">Сменить E-Mail</a>
</p>
</td>
</tr>
</table>
<center><p><em>С уважением, Администрация REDL.IO!</em></p></center>
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>
@@ -0,0 +1,132 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width"/>
<style>
* {
margin: 0;
padding: 0;
font-size: 100%;
font-family: 'Avenir Next', "Helvetica Neue", "Helvetica", Helvetica, Arial, sans-serif;
line-height: 1.65; }
img {
max-width: 100%;
margin: 0 auto;
display: block; }
body,
.body-wrap {
width: 100% !important;
height: 100%;
background: #efefef;
-webkit-font-smoothing: antialiased;
-webkit-text-size-adjust: none; }
a {
color: #8950FC;
text-decoration: none; }
.text-center {
text-align: center; }
.text-right {
text-align: right; }
.text-left {
text-align: left; }
.button {
display: inline-block;
color: white;
background: #8950FC;
border: solid #8950FC;
border-width: 10px 20px 8px;
font-weight: bold;
border-radius: 4px; }
h1, h2, h3, h4, h5, h6 {
margin-bottom: 20px;
line-height: 1.25; }
h1 {
font-size: 32px; }
h2 {
font-size: 28px; }
h3 {
font-size: 24px; }
h4 {
font-size: 20px; }
h5 {
font-size: 16px; }
p, ul, ol {
font-size: 16px;
font-weight: normal;
margin-bottom: 20px; }
.container {
display: block !important;
clear: both !important;
margin: 0 auto !important;
max-width: 680px !important; }
.container table {
width: 100% !important;
border-collapse: collapse; }
.container .masthead {
padding: 40px 0;
background: #8950FC;
color: white; }
.container .masthead h1 {
margin: 0 auto !important;
max-width: 90%;
text-transform: uppercase; }
.container .content {
background: white;
padding: 30px 35px; }
.container .content.footer {
background: none; }
.container .content.footer p {
margin-bottom: 0;
color: #888;
text-align: center;
font-size: 14px; }
.container .content.footer a {
color: #888;
text-decoration: none;
font-weight: bold; }
</style>
</head>
<body>
<table class="body-wrap">
<tr>
<td class="container">
<table>
<tr>
<td align="center" class="masthead">
<h1>REDL.IO</h1>
<p style="margin:4px 0 0;font-size:13px;color:#ffffff;">Хостинг с искусственным интеллектом</p>
</td>
</tr>
<tr>
<td class="content">
<center><h2>Здравствуйте, <?php echo $lastname ?> <?php echo $firstname ?>!</h2>
<p>Ваш пароль бы успешно сменен!</p>
<p>Данные для входа в систему:</p><b>
<p>E-Mail: <?php echo $email ?></p>
<p>Пароль: <?php echo $password ?></p></b></center>
<br>
<center><p><em>С уважением, Администрация REDL.IO!</em></p></center>
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>
@@ -0,0 +1,140 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width"/>
<style>
* {
margin: 0;
padding: 0;
font-size: 100%;
font-family: 'Avenir Next', "Helvetica Neue", "Helvetica", Helvetica, Arial, sans-serif;
line-height: 1.65; }
img {
max-width: 100%;
margin: 0 auto;
display: block; }
body,
.body-wrap {
width: 100% !important;
height: 100%;
background: #efefef;
-webkit-font-smoothing: antialiased;
-webkit-text-size-adjust: none; }
a {
color: #8950FC;
text-decoration: none; }
.text-center {
text-align: center; }
.text-right {
text-align: right; }
.text-left {
text-align: left; }
.button {
display: inline-block;
color: white;
background: #8950FC;
border: solid #8950FC;
border-width: 10px 20px 8px;
font-weight: bold;
border-radius: 4px; }
h1, h2, h3, h4, h5, h6 {
margin-bottom: 20px;
line-height: 1.25; }
h1 {
font-size: 32px; }
h2 {
font-size: 28px; }
h3 {
font-size: 24px; }
h4 {
font-size: 20px; }
h5 {
font-size: 16px; }
p, ul, ol {
font-size: 16px;
font-weight: normal;
margin-bottom: 20px; }
.container {
display: block !important;
clear: both !important;
margin: 0 auto !important;
max-width: 680px !important; }
.container table {
width: 100% !important;
border-collapse: collapse; }
.container .masthead {
padding: 40px 0;
background: #8950FC;
color: white; }
.container .masthead h1 {
margin: 0 auto !important;
max-width: 90%;
text-transform: uppercase; }
.container .content {
background: white;
padding: 30px 35px; }
.container .content.footer {
background: none; }
.container .content.footer p {
margin-bottom: 0;
color: #888;
text-align: center;
font-size: 14px; }
.container .content.footer a {
color: #888;
text-decoration: none;
font-weight: bold; }
</style>
</head>
<body>
<table class="body-wrap">
<tr>
<td class="container">
<table>
<tr>
<td align="center" class="masthead">
<h1>REDL.IO</h1>
<p style="margin:4px 0 0;font-size:13px;color:#ffffff;">Хостинг с искусственным интеллектом</p>
</td>
</tr>
<tr>
<td class="content">
<center><h2>Здравствуйте, <?php echo $lastname ?> <?php echo $firstname ?>!</h2>
<p>Благодарим Вас за регистрацию на сайте игрового хостинга <?php echo $title ?>! Мы благодарны Вам за то, что Вы выбрали именно нашу хостинг-компанию!</p></center>
<p>Данные для входа в систему:</p>
<p>E-Mail: <?php echo $email ?> </p>
<p>Пароль: <?php echo $password ?> </p>
<table>
<tr>
<td align="center">
<p>
<a href="<?php echo $url ?>" target="_blank" style="color:white;" class="button">Перейти на сайт</a>
</p>
</td>
</tr>
</table>
<center><p><em>С уважением, Администрация REDL.IO!</em></p></center>
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>
@@ -0,0 +1,140 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width"/>
<style>
* {
margin: 0;
padding: 0;
font-size: 100%;
font-family: 'Avenir Next', "Helvetica Neue", "Helvetica", Helvetica, Arial, sans-serif;
line-height: 1.65; }
img {
max-width: 100%;
margin: 0 auto;
display: block; }
body,
.body-wrap {
width: 100% !important;
height: 100%;
background: #efefef;
-webkit-font-smoothing: antialiased;
-webkit-text-size-adjust: none; }
a {
color: #8950FC;
text-decoration: none; }
.text-center {
text-align: center; }
.text-right {
text-align: right; }
.text-left {
text-align: left; }
.button {
display: inline-block;
color: white;
background: #8950FC;
border: solid #8950FC;
border-width: 10px 20px 8px;
font-weight: bold;
border-radius: 4px; }
h1, h2, h3, h4, h5, h6 {
margin-bottom: 20px;
line-height: 1.25; }
h1 {
font-size: 32px; }
h2 {
font-size: 28px; }
h3 {
font-size: 24px; }
h4 {
font-size: 20px; }
h5 {
font-size: 16px; }
p, ul, ol {
font-size: 16px;
font-weight: normal;
margin-bottom: 20px; }
.container {
display: block !important;
clear: both !important;
margin: 0 auto !important;
max-width: 680px !important; }
.container table {
width: 100% !important;
border-collapse: collapse; }
.container .masthead {
padding: 40px 0;
background: #8950FC;
color: white; }
.container .masthead h1 {
margin: 0 auto !important;
max-width: 90%;
text-transform: uppercase; }
.container .content {
background: white;
padding: 30px 35px; }
.container .content.footer {
background: none; }
.container .content.footer p {
margin-bottom: 0;
color: #888;
text-align: center;
font-size: 14px; }
.container .content.footer a {
color: #888;
text-decoration: none;
font-weight: bold; }
</style>
</head>
<body>
<table class="body-wrap">
<tr>
<td class="container">
<table>
<tr>
<td align="center" class="masthead">
<h1>REDL.IO</h1>
<p style="margin:4px 0 0;font-size:13px;color:#ffffff;">Хостинг с искусственным интеллектом</p>
</td>
</tr>
<tr>
<td class="content">
<center><h2>Здравствуйте, <?php echo $lastname ?> <?php echo $firstname ?>!</h2>
<p>Благодарим Вас за регистрацию на сайте игрового хостинга <?php echo $title ?>! Мы благодарны Вам за то, что Вы выбрали именно нашу хостинг-компанию!</p></center>
<p>Данные для входа в систему:</p>
<p>E-Mail: <?php echo $email ?> </p>
<p>Пароль: <?php echo $password ?> </p>
<table>
<tr>
<td align="center">
<p>
<a href="<?php echo $url ?>account/login/activate?key=<?php echo $key ?>" target="_blank" style="color:white;" class="button">Активировать учетную запись</a>
</p>
</td>
</tr>
</table>
<center><p><em>С уважением, Администрация REDL.IO!</em></p></center>
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>
@@ -0,0 +1,139 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width"/>
<style>
* {
margin: 0;
padding: 0;
font-size: 100%;
font-family: 'Avenir Next', "Helvetica Neue", "Helvetica", Helvetica, Arial, sans-serif;
line-height: 1.65; }
img {
max-width: 100%;
margin: 0 auto;
display: block; }
body,
.body-wrap {
width: 100% !important;
height: 100%;
background: #efefef;
-webkit-font-smoothing: antialiased;
-webkit-text-size-adjust: none; }
a {
color: #8950FC;
text-decoration: none; }
.text-center {
text-align: center; }
.text-right {
text-align: right; }
.text-left {
text-align: left; }
.button {
display: inline-block;
color: white;
background: #8950FC;
border: solid #8950FC;
border-width: 10px 20px 8px;
font-weight: bold;
border-radius: 4px; }
h1, h2, h3, h4, h5, h6 {
margin-bottom: 20px;
line-height: 1.25; }
h1 {
font-size: 32px; }
h2 {
font-size: 28px; }
h3 {
font-size: 24px; }
h4 {
font-size: 20px; }
h5 {
font-size: 16px; }
p, ul, ol {
font-size: 16px;
font-weight: normal;
margin-bottom: 20px; }
.container {
display: block !important;
clear: both !important;
margin: 0 auto !important;
max-width: 680px !important; }
.container table {
width: 100% !important;
border-collapse: collapse; }
.container .masthead {
padding: 40px 0;
background: #8950FC;
color: white; }
.container .masthead h1 {
margin: 0 auto !important;
max-width: 90%;
text-transform: uppercase; }
.container .content {
background: white;
padding: 30px 35px; }
.container .content.footer {
background: none; }
.container .content.footer p {
margin-bottom: 0;
color: #888;
text-align: center;
font-size: 14px; }
.container .content.footer a {
color: #888;
text-decoration: none;
font-weight: bold; }
</style>
</head>
<body>
<table class="body-wrap">
<tr>
<td class="container">
<table>
<tr>
<td align="center" class="masthead">
<h1>REDL.IO</h1>
<p style="margin:4px 0 0;font-size:13px;color:#ffffff;">Хостинг с искусственным интеллектом</p>
</td>
</tr>
<tr>
<td class="content">
<center><h2>Здравствуйте, <?php echo $lastname ?> <?php echo $firstname ?>!</h2>
<p>Если вы не пытались сменить пароль, проигнорируйте данное сообщение!<br>
Запрос на восстановления пароля был выполнен с IP: <b><?php echo $ip ?></b></p>
<p><b>E-Mail: <?php echo $email ?></b></p></center>
<table>
<tr>
<td align="center">
<p>
<a href="<?php echo $restorelink ?>" target="_blank" style="color:white;" class="button">Сменить пароль</a>
</p>
</td>
</tr>
</table>
<center><p><em>С уважением, Администрация REDL.IO!</em></p></center>
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>