Ayola.net
Новости: В связи с обилием спама, постинг на форуме временно закрыт.

Для связи с поддержкой используйте тикеты в панели управления.
 
*
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь. Август 20, 2017, 03:37:21


Войти


Страниц: [1] 2
  Печать  
Автор Тема: Защита сайтов [Мой сайт - моя крепость.]  (Прочитано 25621 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Astraller™
Маэстро
*****

Карма: 151
Сообщений: 1389

Вселенское зло


Просмотр профиля WWW
« : Февраль 05, 2008, 13:46:52 »

Всем кто собирается строить серьёзный проект, который ему будет жаль потерять стоит прочитать эту статью:
http://www.xakep.ru/magazine/xs/075/

Она должна быть интересна не только разработчикам, но и пользователям бесплатных (или не очень) скриптов. Прежде чем выложить своё (или не очень) творение проверьте создали ли вы тому "злому хакеру", который, обязательно, рано или поздно попытается сломать ваш сайт, максимальное колличество проблем?

PS. Тему стоит закрепить, если ей заинтересуются. Есть у меня надежда что не все строят сайты - однодневки. Улыбающийся
Записан

Гамлета здесь больше нет. Осталась только тень.
DLE user
Маэстро
*****

Карма: 78
Сообщений: 1692



Просмотр профиля WWW
« Ответ #1 : Февраль 05, 2008, 14:14:38 »

Так...Думаю тема хорощая, рспект кароч! Давайте выкладывать тут все возможные статьи и книги по защите своих сайтов!
Записан
Argentum@ayola.ru
Модератор
Просветлённый
*****

Карма: 66
Сообщений: 581


Truth is out there...


Просмотр профиля
« Ответ #2 : Февраль 05, 2008, 14:17:52 »

Прикрепил. Улыбающийся
Записан

Будем взаимовежливы.
Все вопросы пишите в тикеты
DLE user
Маэстро
*****

Карма: 78
Сообщений: 1692



Просмотр профиля WWW
« Ответ #3 : Февраль 05, 2008, 14:21:16 »

  • Анализ кода популярных форумных движков: ТУТ
  • Советы по созданию безопасного пароля: ТУТ
  • Обезопась свой сайт часть 1: ТУТ
  • Обезопась свой сайт часть 2: ТУТ
  • Защита от XSS проводимых по средствам PNG-изображений и Flash!-анимаций: ТУТ
  • Защищаем mysql. Шаг за шагом: ТУТ

От себя добавлю:
1) Если вы юзаете собственный движок, то лучше всего будет зашифровать его с помощью Zend или PHP Defender
2) Используйте хостинги с регулярным обновлением компонентов веб-сервера таких как apache, mysql, php, php-myadmin (например ауола, правда, они это делают нерегулярно, но всё же..)))
3) Читайте мануалы по ПРАВЕЛЬНОМУ и БЕЗОПАСНОМУ программированию!
4) Если вы испльзуете CMS написаны кем-то (типо е107,DLE и т.д.), то регулярно ставьте патчи и обновления выпущенные создателем CMS или форума! Также побродя по разлчиным форумам и сайтам вам могут посоветовать самый безопасный движок!
5) Мало того что нужно создавать верный пароль нужно ещё и хранить его в защищённом месте! Ну я например храню все данные от сайта и хостинга на флешке в RAR архиве под паролем (пароль я помню наизусть и никогда незабуду) Может бывают способы и побезопаснее например сейф, но это уже сильно жостко Улыбающийся Это следует выполять особенно если у вас известный портал!
6) Испоьзуйте надёжный браузер! Под Unix системы лучшим выбором скорей всего пока что будет Firefox, а под Windows если верить сайту operafan.net, то Opera! Юзать оперу под линухами и им подобными несветую т.к пока вроде глючит (Хотя на линхе я тестировал только 9.20 верию мож чё уже и изменилось...)
7) Администратору сайта важно иметь файрвол и антивирус и следить за тем куда вы заходите в инетернете! Нетычте на все письма в своём почтовом ящике пытаясь найти что-то важное (Сначала вдумайтесь, а оно вам нужно - открывать всякий спам?) Частеннько проверяйте свой компьютер на вирусы, руткиты и шпионские программы!
Крутой  На сайте о ЗАЩИТЕ вы можете найти новости о недавно найденых уязвимостях скриптов и нетолько! Посотрел и залатал (Я так делаю))
9) Соблюдение ВСЕХ правил безопасности, правильное выставление CHMOD, покупка лицензионных версий скриптов привtдут к максимальной защите сайта!

Пока вроде всё... Улыбающийся
ВСЕ предложения по развитию статьи в личку!
« Последнее редактирование: Февраль 06, 2008, 13:53:01 от DLE user » Записан
Crow
Вникающий
***

Карма: 15
Сообщений: 172

Аццкий тестирофщег


Просмотр профиля
« Ответ #4 : Февраль 05, 2008, 21:06:43 »

DLE user
TNX, бум читать, мож чего нового найдём...
Записан

DLE user
Маэстро
*****

Карма: 78
Сообщений: 1692



Просмотр профиля WWW
« Ответ #5 : Февраль 06, 2008, 00:05:23 »

Читайте на здоровье Улыбающийся
Свой пост будем постепенно развивать!!
Записан
DLE user
Маэстро
*****

Карма: 78
Сообщений: 1692



Просмотр профиля WWW
« Ответ #6 : Февраль 06, 2008, 00:33:31 »

06.02.08 - Внесены 5, 6, 7, 8 и 9 пункты, обновлён 1 и 4 пункт, убраны некоторые офаграфические ошибки.
« Последнее редактирование: Февраль 06, 2008, 13:52:23 от DLE user » Записан
Troll909
Новичёк
*

Карма: -15
Сообщений: 32


Просмотр профиля
« Ответ #7 : Март 11, 2008, 18:57:50 »

Эта тема хорошо расписанна здесь!!
https://forum.antichat.ru/forum16.html
https://forum.antichat.ru/forum114.html
https://forum.antichat.ru/forum76.html
Записан

Подниму посешаемость сайта. Не бесплатно.
Заинтерисовало  пиши 415338430


Здесь можно узнать многое и полезное
https://forum.antichat.ru/
DLE user
Маэстро
*****

Карма: 78
Сообщений: 1692



Просмотр профиля WWW
« Ответ #8 : Март 13, 2008, 15:22:05 »

Заколебали рекламить этот антиРАК или как его там..)))
Записан
Sergiy
Старший Новичёк
**

Карма: 5
Сообщений: 95


Отец Сергий


Просмотр профиля WWW
« Ответ #9 : Май 10, 2008, 15:56:57 »

А почему когда пытаешься например, Оперой в её "Загрузки" вставить адрес какого-то php-файла из Инета, то иногда загружается нормально весь файл, а иногда какая-то ерунда, мЕньшего размера, и не с тем содержанием?
Записан

Astraller™
Маэстро
*****

Карма: 151
Сообщений: 1389

Вселенское зло


Просмотр профиля WWW
« Ответ #10 : Май 10, 2008, 17:55:06 »

А почему когда пытаешься например, Оперой в её "Загрузки" вставить адрес какого-то php-файла из Инета, то иногда загружается нормально весь файл, а иногда какая-то ерунда, мЕньшего размера, и не с тем содержанием?
Просто этот скрипт смотрит на наличие у вас кука или флага в сесии. Если он есть - отдаёт запрашиваемый фаил, если нет - ерунду.
Записан

Гамлета здесь больше нет. Осталась только тень.
saor
Новичёк
*

Карма: 0
Сообщений: 4


Просмотр профиля
« Ответ #11 : Май 14, 2008, 14:08:33 »

Ребята подскажите, хочу закрыть доступ в директорию сайта с помощю утилитки encode_unix_password
вот ее описание чтобы понятно было:
Данная программа поможет создать дополнительную защиту Вашего сайта файлами .htaccess и  .htpasswd
Данная защита обеспечивается средствами сервера и является наиболее надежной по сравнению с другими видами защит.
Ограничение доступа к определенной части вашего веб-сайта можно легко организовать при помощи системы паролей.
Если посетитель попробует зайти в закрытую часть веб-сайта, то его браузер откроет окно, в котором посетитель должен будет ввести свои логин и пароль.
Настройка системы паролей заключается в следующем: в отдельный текстовый файл с помощью утилиты passwd, записываются нужные логины и пароли, после чего можно ограничить доступ к любой части веб-сайта.

вобщем не нужно  правильно указать системный путь до файла .htpasswd
вот пример из файла .htaccess
AuthUserFile /pub/home/yoursite/htdocs/apanel/.htpasswd

у меня адрес сайта saor.ex6.ru
как правильно написать системный путь?

Записан
Astraller™
Маэстро
*****

Карма: 151
Сообщений: 1389

Вселенское зло


Просмотр профиля WWW
« Ответ #12 : Май 14, 2008, 16:36:46 »

у меня адрес сайта saor.ex6.ru
как правильно написать системный путь?
Скопировать его из панели управления.
Записан

Гамлета здесь больше нет. Осталась только тень.
Vampirqueen
Новичёк
*

Карма: 0
Сообщений: 45


Просмотр профиля
« Ответ #13 : Май 29, 2008, 11:22:35 »

Люди у меня будет проэкт тут выложин игра бк ну копия вот и мне нужна очень хорошая защита я скора свой сайт буду перевадить на платных хостинг вот кто чем можит посоветуйте мне как можна защитить свой сайт на этом хостинге?НепонимающийНепонимающийНепонимающий?
Записан
DLE user
Маэстро
*****

Карма: 78
Сообщений: 1692



Просмотр профиля WWW
« Ответ #14 : Май 29, 2008, 12:19:40 »

1. Можно его никому не показывать...
2. Можно делать ежедневный бэкап файлов и БД
3. А можно вообще делать на localhost'е.
Записан
kupec
Просветлённый
****

Карма: 13
Сообщений: 304


Joomla 1.5


Просмотр профиля WWW
« Ответ #15 : Июль 17, 2008, 21:37:12 »

Собственно тему не зачем новую делать. Вот решил поделиться, возможно кто с Джумлой работает, то есть компонент jFireWall и к нему мамбот, имеет довольно неплохие настройки, вплоть до отдельного запрещения айпи адресов, стран, юзер-агентов и главное интересное в том, что можно не полностью запретить доступ, кстати с перенаправлением на другую страницу, а отдельно к страницам сайта... на Аеле устанавливается, тобиш к защитныи функциям Аелы получаете дополнительные функции управления доступа к своим страницам. Где взял - не помню, но поиском найти можно.
Записан

IdoBlog, CommunityBuilder, Joomla 1.5, sh404Sef...
Дима
Новичёк
*

Карма: 0
Сообщений: 2


Просмотр профиля
« Ответ #16 : Июль 22, 2008, 03:34:04 »

Можно зделать ризервную копию и не паритса
Записан
timoxa8401
Старший Новичёк
**

Карма: 5
Сообщений: 72



Просмотр профиля WWW
« Ответ #17 : Июль 22, 2008, 14:01:16 »

Можно зделать ризервную копию и не паритса
Резервную копию чего? Сайта? Помоему смысл проблемы примерно в том :
Подламали тебе сайт,накидали всякой гадости,тут заходит пользователь нахватался вирусов, троянов и т.п.
Так после этого ни он,не он,не его ззнакомые, не его "однофорумцы", не его "одночатцы" и т.д. ни в жизнь к тебе зайдут
Да и войдёш ли ты,после взлома?
Так ли это? ибо я сам новичок и не как не защетился
Записан
timoxa8401
Старший Новичёк
**

Карма: 5
Сообщений: 72



Просмотр профиля WWW
« Ответ #18 : Июль 22, 2008, 14:18:35 »

Всем кто собирается строить серьёзный проект, который ему будет жаль потерять стоит прочитать эту статью:
http://www.xakep.ru/magazine/xs/075/

Она должна быть интересна не только разработчикам, но и пользователям бесплатных (или не очень) скриптов. Прежде чем выложить своё (или не очень) творение проверьте создали ли вы тому "злому хакеру", который, обязательно, рано или поздно попытается сломать ваш сайт, максимальное колличество проблем?

PS. Тему стоит закрепить, если ей заинтересуются. Есть у меня надежда что не все строят сайты - однодневки. Улыбающийся
статья не открывается
Error Code: 403 Forbidden. The server denied the specified Uniform Resource Locator (URL). Contact the server administrator. (12202)
Записан
Astraller™
Маэстро
*****

Карма: 151
Сообщений: 1389

Вселенское зло


Просмотр профиля WWW
« Ответ #19 : Июль 23, 2008, 16:03:11 »

статья не открывается
Уже открывается.
Записан

Гамлета здесь больше нет. Осталась только тень.
timoxa8401
Старший Новичёк
**

Карма: 5
Сообщений: 72



Просмотр профиля WWW
« Ответ #20 : Июль 23, 2008, 16:28:29 »

Уже открывается.
Может только у меня неоткрывается? :403 как не старался!
Записан
atimur
Просветлённый
****

Карма: 59
Сообщений: 990


Живу в SanCity


Просмотр профиля WWW
« Ответ #21 : Июль 23, 2008, 16:37:59 »

Уже открывается.
+1
Записан

- Правда, она всегда глаза режет...
- Капча - Идите лесом...
modlen
Новичёк
*

Карма: 0
Сообщений: 9


Просмотр профиля
« Ответ #22 : Август 01, 2008, 13:19:18 »

Подскажите рожалуста!
Вот php код! Куда надо вставлять строки защиты на:
-ограничение количества знаков (до 20)
-ограничение введения символов (+ - /  * и т.д.) и т.д.
и вообще как можно максимально защетить данный код! Покажите как это делается!
Заранее спасибо!

<?
session_start();


if ($_POST['username']) {





if( strtolower($_POST['code'])!= strtolower($_SESSION['texto'])){

 include('header.php');


echo "<br><br>SECURITY CODE ERROR... ";

include('footer.php');

exit();
}


//Comprobacion del envio del nombre de usuario y password
require('funciones.php');
$username=uc($_POST['username']);
$password=uc($_POST['password']);

if ($password==NULL) {
echo "La password no fue enviada";
}else{
require('config.php');
$query = mysql_query("SELECT username,password FROM tb_users WHERE username = '$username'") or die(mysql_error());
$data = mysql_fetch_array($query);
if($data['password'] != $password) {
echo "íåâåðíûé ëîãèí";
}else{
$query = mysql_query("SELECT username,password FROM tb_users WHERE username = '$username'") or die(mysql_error());
$row = mysql_fetch_array($query);
mysql_close($con);
$nicke=$row['username'];
$passe=$row['password'];

//90 dias dura la cookie
setcookie("usNick",$nicke,time()+7776000);
setcookie("usPass",$passe,time()+7776000);


$lastlogdate=time();
$lastip = getRealIP();
require('config.php');
$querybt = "UPDATE tb_users SET lastlogdate='$lastlogdate', lastiplog='$lastip' WHERE username='$nicke'";
mysql_query($querybt) or die(mysql_error());
mysql_close($con);

?>

<META HTTP-EQUIV="REFRESH" CONTENT="0;URL=members.php">

<?
}
}
}else{
?>
<? include('header.php'); ?>

<h3>Заголовок</h3>
<br />

<a href="register.php">Заголовок</a>
<br>
<a href="recoverpwd.php">Заголовок</a>
<br><br>


<div align="center"><div id="form">
<fieldset>
<legend>Заголовок</legend>

<form action='login.php' method='POST'>

<table width="400" border="0" align="center">
  <tr>
    <td width="150" align="left"><p><label>Заголовок</label></p></td>
    <td width="250" align="left"><input type='text' size='15' maxlength='25' name='username' autocomplete="off"value="" tabindex="1" /></td>
  </tr>
  <tr>
    <td width="150" align="left"><p><label>Заголовок</label></p></td>
   <td width="250" align="left"><input type='password' size='15' maxlength='25' name='password' autocomplete="off" value="" tabindex="2" /></td>
  </tr>
  <tr>
    <td width="150" align="left"><p><label>Заголовок</label></p></td>
    <td width="250" align="left"><input type='text' size='3' maxlength='3' name='code' autocomplete="off" class="securitycode" value="" tabindex="3" /></td>
  </tr>
  <tr>
    <td width="150" align="left">&nbsp;</td>
    <td width="250" align="left"><img src="image.php?<?php echo $res; ?>" /></td>
  </tr>

  <tr>
    <td width="150" align="left">&nbsp;</td>
    <td width="250" align="right"><input type="submit" value="Enter" class="submit" tabindex="4" />
   </td>
  </tr>
</table>
</form>
</fieldset>
</div></div>

<? include('footer.php'); ?>
<?
}
?>

Записан
Astraller™
Маэстро
*****

Карма: 151
Сообщений: 1389

Вселенское зло


Просмотр профиля WWW
« Ответ #23 : Август 01, 2008, 13:37:51 »

Подскажите рожалуста!
Вот php код! Куда надо вставлять строки защиты на:
-ограничение количества знаков (до 20)
-ограничение введения символов (+ - /  * и т.д.) и т.д.
и вообще как можно максимально защетить данный код! Покажите как это делается!
Заранее спасибо!
Надо видеть "funciones.php". Иначе ничего не ясно, а вообще пора бы подумать о разделе "программирование".
Записан

Гамлета здесь больше нет. Осталась только тень.
modlen
Новичёк
*

Карма: 0
Сообщений: 9


Просмотр профиля
« Ответ #24 : Август 01, 2008, 14:04:27 »

Вот код  funciones.php    Тут кирилица не правильна! не обращайте внимание! на работе комп гонит!



<?php


function limitatexto( $texto, $limite )
  {
    if( strlen($texto)>$limite )
      {
        $texto = substr( $texto,0,$limite );
      }
    return $texto;

  }





function mostrarTemplate($tema, $variables)
{
    //var_dump($variables);
    extract($variables);
    eval("?>".$tema."<?");
}

function parsearTags($mensaje)
{
    $mensaje = str_replace("[citar]", "<blockquote><hr width='100%' size='2'>", $mensaje);
    $mensaje = str_replace("[/citar]", "<hr width='100%' size='2'></blockquote>", $mensaje);
    return $mensaje;
}

// funcion para validar email
function ValidaMail($pMail) {
    if (ereg("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@+([_a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]{2,200}\.[a-zA-Z]{2,6}$", $pMail ) ) {
       return true;
    } else {
echo "Âû Äîëæíû Ââåñòè Ïðàâèëüíûé Àäðåñ Email"; exit();
    }
}

// funcion para validar email
function ValidaWMID($pMail) {
    if (ereg("[_A-Z0-9-]$", $pMail ) ) {
       return true;
    } else {
echo "Âû Äîëæíû Ââåñòè Ïðàâèëüíûé Z êîøåëåê"; exit();
    }
}

// minimo de carateres
function minimo($contenido) {

if (strlen($contenido) < 3) {

echo "Âàø ëîãèí äîëæåí áûòü ïî êðàéíåé ìåðå èç 3 ñèìâîëîâ.";include('footer.php'); exit();

} else {

// echo "todo bien...";
return $contenido;
}
}


function minimopass($contenido) {

if (strlen($contenido) < 6) {

echo "Âàø ïàðîëü äîëæåí áûòü ïî êðàéíåé ìåðå èç 6 ñèìâîëîâ.";include('footer.php'); exit();

} else {

// echo "todo bien...";
return $contenido;
}
}

// funcion para sanitizar variables
function limpiar($mensaje)
{

$mensaje = str_replace("'"," ",$mensaje);
$mensaje = str_replace(";"," ",$mensaje);
$mensaje = str_replace("$"," ",$mensaje);
return $mensaje;
}

function shout($nombre_usuario){
   if (ereg("^[a-zA-Z0-9\-_]{3,20}$", $nombre_usuario)) {
//      echo "El campo $nombre_usuario es correcto<br>";
      return $nombre_usuario;
   } else {
       echo "The Field $nombre_usuario is not valid<br>";include('footer.php');
exit();
   }
}




// universal cleaner function


function uc($mensaje)
{

   if (ereg("^[a-zA-Z0-9\-_]{3,20}$", $mensaje)) {
//      echo "El campo $mensaje es correcto<br>";
$mensaje = htmlentities(stripslashes(strtolower(trim($mensaje))));
$mensaje = str_replace("'"," ",$mensaje);
$mensaje = str_replace(";"," ",$mensaje);
$mensaje = str_replace("$"," ",$mensaje);
return $mensaje;
   } else {
       echo "The Field $mensaje is not Valid<br>";include('footer.php');
exit();
   }

}








//funcion para añadir smylies

function caretos($texto,$ruta)
{
   $i="<img src=\"$ruta/";
   $i_="\" >";
   $texto=str_replace("Улыбающийся",$i."icon_smile.gif".$i_,$texto);
   $texto=str_replace("Веселый",$i."icon_biggrin.gif".$i_,$texto);
   $texto=str_replace("^^",$i."icon_cheesygrin.gif".$i_,$texto);

   $texto=str_replace("xD",$i."icon_lol.gif".$i_,$texto);
   $texto=str_replace("XD",$i."icon_lol.gif".$i_,$texto);

   $texto=str_replace(":|",$i."icon_neutral.gif".$i_,$texto);
   $texto=str_replace("Грустный",$i."icon_sad.gif".$i_,$texto);
   $texto=str_replace(":&#039(",$i."icon_cry.gif".$i_,$texto);
   $texto=str_replace(":O",$i."icon_surprised.gif".$i_,$texto);
   $texto=str_replace("B)",$i."icon_cool.gif".$i_,$texto);
   $texto=str_replace("8|",$i."icon_rolleyes.gif".$i_,$texto);
   $texto=str_replace("O_O",$i."icon_eek.gif".$i_,$texto);
   $texto=str_replace("Показает язык",$i."icon_razz.gif".$i_,$texto);
   $texto=str_replace(":?",$i."icon_confused.gif".$i_,$texto);
   $texto=str_replace("^:@",$i."icon_evil.gif".$i_,$texto);
   $texto=str_replace("^_-",$i."icon_frown.gif".$i_,$texto);
   $texto=str_replace("!(",$i."icon_mad.gif".$i_,$texto);
   $texto=str_replace("^)",$i."icon_twisted.gif".$i_,$texto);
   $texto=str_replace("Подмигивающий",$i."icon_wink.gif".$i_,$texto);
   $texto=str_replace(":B",$i."drool.gif".$i_,$texto);
   return $texto;
}

// ip real
function getRealIP()
{

   if( $_SERVER['HTTP_X_FORWARDED_FOR'] != '' )
   {
      $client_ip =
         ( !empty($_SERVER['REMOTE_ADDR']) ) ?
            $_SERVER['REMOTE_ADDR']
            :
            ( ( !empty($_ENV['REMOTE_ADDR']) ) ?
               $_ENV['REMOTE_ADDR']
               :
               "unknown" );

      // los proxys van añadiendo al final de esta cabecera
      // las direcciones ip que van "ocultando". Para localizar la ip real
      // del usuario se comienza a mirar por el principio hasta encontrar
      // una dirección ip que no sea del rango privado. En caso de no
      // encontrarse ninguna se toma como valor el REMOTE_ADDR

      $entries = split('[, ]', $_SERVER['HTTP_X_FORWARDED_FOR']);

      reset($entries);
      while (list(, $entry) = each($entries))
      {
         $entry = trim($entry);
         if ( preg_match("/^([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/", $entry, $ip_list) )
         {
            // http://www.faqs.org/rfcs/rfc1918.html
            $private_ip = array(
                  '/^0\./',
                  '/^127\.0\.0\.1/',
                  '/^192\.168\..*/',
                  '/^172\.((1[6-9])|(2[0-9])|(3[0-1]))\..*/',
                  '/^10\..*/');

            $found_ip = preg_replace($private_ip, $client_ip, $ip_list[1]);

            if ($client_ip != $found_ip)
            {
               $client_ip = $found_ip;
               break;
            }
         }
      }
   }
   else
   {
      $client_ip =
         ( !empty($_SERVER['REMOTE_ADDR']) ) ?
            $_SERVER['REMOTE_ADDR']
            :
            ( ( !empty($_ENV['REMOTE_ADDR']) ) ?
               $_ENV['REMOTE_ADDR']
               :
               "unknown" );
   }

   return $client_ip;

}

?>
Записан
Страниц: [1] 2
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.13 | SMF © 2006, Simple Machines LLC

2003-2008 © ООО "Инфотур" - Бесплатный хостинг Ayola.net
Valid XHTML 1.0! Valid CSS! Dilber MC Theme by HarzeM
Страница сгенерирована за 0.192 секунд. Запросов: 17.