Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Авторизация для себя в скрипте 
:(
    Опции темы
Elfet
Дата 7.4.2006, 18:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Как можно просто реализовать простую афторизацию на своём сайте? Пишу тобишь сайт для себя и лень делать сложную авторизацию. Может есть простой способ?


--------------------
PM MAIL WWW Skype   Вверх
Elfet
Дата 7.4.2006, 19:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Вот так можно?
Код

$myPas = "001d7f516a39bed8ac1f74de1286da52";

if( isset($_GET['login']) )
{
 if( isset($_POST['password']) )
 {
  if( md5($_POST['password']) == $myPas )
  {
   setcookie("admin", md5($_POST['password']), time()+3600 );
   print $kernel->html->login(1);
   exit;
  }
 }
 else
 {
  print $kernel->html->login(0);
  exit;
 }
}
else if(isset($_GET['logout']))
{
 setcookie("admin", 0, 0 );
 print $kernel->html->login(2);
 exit;
}
if( isset($_COOKIE['admin']) && $_COOKIE['admin'] == $myPas )
{
 print "Admin";
}



--------------------
PM MAIL WWW Skype   Вверх
Wolf1994
Дата 7.4.2006, 19:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 5.10.2004

Репутация: нет
Всего: 29



1) Поставить куки админа.
2) Скрипт ставящий куки удалить.
3) Распознавать админа по кукам и продлевать срок их действия.
PM MAIL WWW   Вверх
ZlojEzh
Дата 7.4.2006, 23:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 8.10.2005
Где: Киев, Украина

Репутация: 1
Всего: 15



если доступ надо полностью ограничить на некий скрипт или папку - юзай авторизацию через .htaccess
если возможен доступ к одному скрипту пользователей с разным уровнем доступа, тогда неплохой вариант - использование PEAR (Auth_HTTP) - понадобится всего несколько строчек кода
правда Auth_HTTP работает только если php наcтроен модулем апача

иначе - сессии


Цитата(Wolf1994 @ 7.4.2006, 19:45 Найти цитируемый пост)
1) Поставить куки админа.
2) Скрипт ставящий куки удалить.
3) Распознавать админа по кукам и продлевать срок их действия.

ИМХО, не лучший вариант в плане безопасности
зато, признаю, самый простой (если не считать .htaccess)

PM MAIL ICQ   Вверх
Elfet
Дата 8.4.2006, 12:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



А может кто-нибудь про Auth_HTTP расказать?


--------------------
PM MAIL WWW Skype   Вверх
ZlojEzh
Дата 8.4.2006, 12:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 8.10.2005
Где: Киев, Украина

Репутация: 1
Всего: 15



да там, в принципе, все в мануале есть

экзампл из мана:
Код

require_once("Auth/HTTP.php");

// setting the database connection options
$AuthOptions = array(
'dsn'=>"pgsql://test:test@localhost/testdb",
'table'=>"testable",                            // your table name 
'usernamecol'=>"username",            // the table username column
'passwordcol'=>"password",            // the table password column
'cryptType'=>"none",                // password encryption type in your db
);


$a = new Auth_HTTP("DB", $AuthOptions);

$a->setRealm('yourrealm');            // realm name
$a->setCancelText('<h2>Error 401</h2>');        // error message if authentication fails
$a->start();                    // starting the authentication process


if($a->getAuth())                // checking for autenticated user 
{
    echo "Hello $a->username welcome to my secret page";
    
};



как видишь - все предельно просто
создаешь в БД таблицу вида login-password (если нету БД можно использовать файлы или что-нить другое - контейнеров для паролей там много)
вписываешь в этот кусок кода данные по БД и вставляешь в начало своего скрипта
и все, собсна

про dsn можно почитать в мане по PEAR:DB

хотя я предпочитаю .htacess ))
PM MAIL ICQ   Вверх
IvanB
Дата 8.4.2006, 12:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 155
Регистрация: 23.5.2005
Где: Irkutsk

Репутация: нет
Всего: 5



Имхо, Google может....smile
http://dmitry.ints.net/library/prog/link/P....auth_http.html

Опоздал...)

Это сообщение отредактировал(а) IvanB - 8.4.2006, 12:36
--------------------
Закон отладки: Каждая последняя ошибка является предпоследней.
PM MAIL ICQ   Вверх
Elfet
Дата 8.4.2006, 12:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Ок спасибо! smile Не хотелось использовать базу.
А вот так вот безопасно будет?
Код

$myPas = "001d7f516a39bed8ac1f74de1286da52";
$myPas_date = date("HdmY");

if( isset($_GET['login']) )
{
 if( isset($_POST['password']) )
 {
  if( md5(md5($_POST['password']).$myPas_date) == md5($myPas.$myPas_date) )
  {
   setcookie("admin", md5(md5($_POST['password']).$myPas_date), time()+3600 );
   print $kernel->html->login(1);
   exit;
  }
 }
 else
 {
  print $kernel->html->login(0);
  exit;
 }
}
else if(isset($_GET['logout']))
{
 setcookie("admin", 0, 0 );
 print $kernel->html->login(2);
 exit;
}
if( isset($_COOKIE['admin']) && $_COOKIE['admin'] == md5($myPas.$myPas_date) )
{
  $kernel->is_admin = 1;
  //Ура мы админ!
}

$kernel->html->login(0); - форма ввода пароля
$kernel->html->login(1); - Говория что удачно вошли
$kernel->html->login(2); - Говорим что удачно вышли

Такая авторизация по md5 на одни час (md5($myPas.$myPas_date)) из хеш пароля. С солью smile


--------------------
PM MAIL WWW Skype   Вверх
IvanB
Дата 8.4.2006, 13:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 155
Регистрация: 23.5.2005
Где: Irkutsk

Репутация: нет
Всего: 5



? А зачем два раза md5 применять?
Вроде одного хватать должно....)
Хотя генерация хеша - исключительно дело вкуса....)

Это сообщение отредактировал(а) IvanB - 8.4.2006, 14:14
--------------------
Закон отладки: Каждая последняя ошибка является предпоследней.
PM MAIL ICQ   Вверх
ZlojEzh
Дата 8.4.2006, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 8.10.2005
Где: Киев, Украина

Репутация: 1
Всего: 15



вот кто-то удивится, когда после трех суток работы md5_inside получит еще один хеш и строчку с временем...
PM MAIL ICQ   Вверх
Wolf1994
Дата 8.4.2006, 15:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 5.10.2004

Репутация: нет
Всего: 29



Просветите ламера в этом деле. Хэш на куки ставится - чтобы уберечь куки от CSS-атаки (или как ещё их можно узнать)?
PM MAIL WWW   Вверх
Elfet
Дата 9.4.2006, 14:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



md5($myPas.$myPas_date) - это что бы хэш которые записываеться в куки работал только один час smile


--------------------
PM MAIL WWW Skype   Вверх
AztEK
Дата 9.4.2006, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 723
Регистрация: 4.1.2005

Репутация: нет
Всего: 18



Может я щас бред скажу, но может просто создать файл с названием типа vjshfhsduihiuvhsd.php
Прописать в нём админку без всяких сессий и кук. Фик туда кто попадёт - название то...


--------------------
Linux is like wigwam -- no windows, no gates, apache inside.
PM MAIL Jabber   Вверх
Elfet
Дата 9.4.2006, 16:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Можно, но мне нужно лазить по самому сайту как админ.


--------------------
PM MAIL WWW Skype   Вверх
Wolf1994
Дата 9.4.2006, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 5.10.2004

Репутация: нет
Всего: 29



Цитата(Elfet @ 9.4.2006, 14:03 Найти цитируемый пост)
md5($myPas.$myPas_date) - это что бы хэш которые записываеться в куки работал только один час 

Задним умом догнал smile но я думал, что хэши ещё используются для "дополнительной" защиты. Зачем, например, хранить пароли форумов в хэше, ведь там он временно-независимый? Или я что-то путаю и хэши используются только с модификаторами, чтобы из двух ключей сделать один?
PM MAIL WWW   Вверх
Elfet
Дата 9.4.2006, 17:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Wolf1994,
Чёт я не понял о чём ты smile Хэши нужны для авторизации юзеров. Что бы каждый раз не вводить пароль повторно smile

Так как насчёт моего кода? smile Кто-нибудь может сказать безопасен ли он? smile


--------------------
PM MAIL WWW Skype   Вверх
Wolf1994
Дата 9.4.2006, 19:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 5.10.2004

Репутация: нет
Всего: 29



Цитата(Elfet @ 9.4.2006, 17:18 Найти цитируемый пост)
Wolf1994,
Чёт я не понял о чём ты  Хэши нужны для авторизации юзеров. Что бы каждый раз не вводить пароль повторно

Я всё никак не могу понять - зачем использовать эти хэши. Чем отличается хранение пароля в хэше и в простом, незакодированном, виде?

То есть, я так понимаю, при добавлении в хэш времени, придаётся дополнительная защита. А если использовать всего один параметр - сам пароль - зачем хэш?
PM MAIL WWW   Вверх
ZlojEzh
Дата 9.4.2006, 19:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 8.10.2005
Где: Киев, Украина

Репутация: 1
Всего: 15



Цитата(AztEK @ 9.4.2006, 14:12 Найти цитируемый пост)
Может я щас бред скажу, но может просто создать файл с названием типа vjshfhsduihiuvhsd.php
Прописать в нём админку без всяких сессий и кук. Фик туда кто попадёт - название то...

найдут запросто
более того, этот файл еще и поисковики, скорее всего, проиндексируют (даже если автолистинг папок отключен)


Цитата(Wolf1994 @ 9.4.2006, 19:37 Найти цитируемый пост)
Я всё никак не могу понять - зачем использовать эти хэши. Чем отличается хранение пароля в хэше и в простом, незакодированном, виде?

хеши используются для кодирования паролей
даже если ты знаешь хеш пароля, восставновление по нему самого пароля займет очень много времени
например, на сайте есть дыра под sql-injection позволяющая вывести на экран некую таблицу с хешами паролей
даже если злобный хакер ) эту дыру найдет, получить пароль админа он все равно не сможет
PM MAIL ICQ   Вверх
Wolf1994
Дата 9.4.2006, 22:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 5.10.2004

Репутация: нет
Всего: 29



Цитата(ZlojEzh @ 9.4.2006, 19:56 Найти цитируемый пост)
хеши используются для кодирования паролей
даже если ты знаешь хеш пароля, восставновление по нему самого пароля займет очень много времени
например, на сайте есть дыра под sql-injection позволяющая вывести на экран некую таблицу с хешами паролей
даже если злобный хакер ) эту дыру найдет, получить пароль админа он все равно не сможет

А что мешает этому хакеру установить соответсвующий кук с полученным хэшем? Ведь проверка идёт по кукам?
PM MAIL WWW   Вверх
Ciber SLasH
Дата 9.4.2006, 22:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: нет
Всего: 67



Цитата(Wolf1994 @ 9.4.2006, 23:33 Найти цитируемый пост)
А что мешает этому хакеру установить соответсвующий кук с полученным хэшем? Ведь проверка идёт по кукам?

Да вобщем ничего не мешает. В куки записывать конфединциальную информацию нельзя.
PM   Вверх
ZlojEzh
Дата 9.4.2006, 22:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 8.10.2005
Где: Киев, Украина

Репутация: 1
Всего: 15



абсолютно ничто
поэтому куки лучше всего использовать (при создании системы авторизации) только для хранения идентификатора сессии
а на сами сессии ставить ограниченный срок существования


Цитата(Elfet @ 9.4.2006, 17:18 Найти цитируемый пост)
Так как насчёт моего кода?

все бы хорошо, но раз в час пользователю придется вводить пароль по-новой

я бы все же использовал сессии...
а еще лучше - .htaccess
PM MAIL ICQ   Вверх
Wolf1994
Дата 9.4.2006, 23:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 5.10.2004

Репутация: нет
Всего: 29



А чем безвременные куки хуже сессий? Если вывод информации фильтруется (htmlspecialchars ()) и они не лежат в MySQL-базе, то ведь их нет возможности узнать?
PM MAIL WWW   Вверх
Ciber SLasH
Дата 9.4.2006, 23:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: нет
Всего: 67



Цитата(Wolf1994 @ 10.4.2006, 00:41 Найти цитируемый пост)
А чем безвременные куки хуже сессий?

Куки можно перехватить, а сессия хранится на сервере.
PM   Вверх
Elfet
Дата 10.4.2006, 13:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Цитата(ZlojEzh @ 9.4.2006, 23:48)
абсолютно ничто
поэтому куки лучше всего использовать (при создании системы авторизации) только для хранения идентификатора сессии
а на сами сессии ставить ограниченный срок существования


Цитата(Elfet @  9.4.2006,  17:18 Найти цитируемый пост)
Так как насчёт моего кода?

все бы хорошо, но раз в час пользователю придется вводить пароль по-новой

я бы все же использовал сессии...
а еще лучше - .htaccess

В том и заключаеться защита, что бы куки никто не воровал. Мой код имитирует сессии smile Очень простенько smile

А то что каждый раз вводить новые - это да, но ведь я же хочу это для себя еделать только.
Кстати такие штуки и в больших скриптах авторизации есть, например на masterhostе при входе в СР указываешь сколько будет длиться сессия smile


--------------------
PM MAIL WWW Skype   Вверх
paraZite
Дата 10.4.2006, 22:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 9.4.2006
Где: /Ukraine/Mariupol

Репутация: нет
Всего: 1



Цитата
Может я щас бред скажу, но может просто создать файл с названием типа vjshfhsduihiuvhsd.php
Прописать в нём админку без всяких сессий и кук. Фик туда кто попадёт - название то...
Любой человек, имеющий доступ к аццесс логу апача увидит полный путь к твоей админке...

Цитата
что бы куки никто не воровал
Чтобы их никто не воровал, необходимо, как минимум, привязать к идентификатору сессии, передающемуся с помощью cookies, IP.

Мой пример:
Код
<?php
error_reporting(0);

$AUTH = NULL;
$ip = $_SERVER['REMOTE_ADDR'];
$script = $_SERVER['PHP_SELF'];
if(empty($_COOKIE['sid'])){
    if(empty($_POST['login']) || empty($_POST['password'])){
//ЗДЕСЬ ВЫВОДИМ ФОРМУ ДЛЯ ВВОДА ЛОГИНА/ПАССА
        die;
    } else {
        $login = $_POST['login'];
        $password = $_POST['password'];
        $hash = sha1($password.$login);
        $query = "SELECT uid FROM users WHERE hash='$hash'";
        $res = mysql_query($query, $con);
        $AUTH = mysql_num_rows($res);
        if ($AUTH === 1){
            srand((double)microtime()*1000000);
            $sid = sha1($hash.uniqid(rand()));
            setcookie('sid', $sid, time()+2592000);
            $query = "UPDATE users SET sid = '$sid', ip = '$ip' WHERE hash = '$hash'";
            mysql_query($query, $con);
        }
    header('Location: '.$script);
    }
} else {
    $sid = $_COOKIE['sid'];
    if(!ereg("^[0-9,a-f]{40}$",$sid)) die;
    $query = "SELECT * FROM users WHERE sid= '$sid' AND ip= '$ip'";
    $res = mysql_query($query, $con);
    $AUTH = mysql_num_rows($res);
    if(!($AUTH === 1)){
        setcookie('sid', '');
        header('Location: '.$script);
    }
    $my = mysql_fetch_assoc($res);
    foreach($my as $k => $v){
        $k = 'my_'.$k;
        $$k = $v;
    }
}
?>


Это сообщение отредактировал(а) paraZite - 10.4.2006, 22:13
PM ICQ   Вверх
Ciber SLasH
Дата 10.4.2006, 22:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: нет
Всего: 67



paraZite, твой скрипт зациклится, т.к. ты при всех условиях перенаправляешь на этот же скрипт.
PM   Вверх
paraZite
Дата 10.4.2006, 22:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 9.4.2006
Где: /Ukraine/Mariupol

Репутация: нет
Всего: 1



хз... если логин и пасс не введены, а кукисы невалидны идёт вызов die();
если введены логин и пассс и они валидны, выставляются куки и скрипт редиректит пользователя сам на себя, а так как кукисы уже не пусты, скрипт завершает свою работу, опознав пользователя...

Ща протестю ещё раз на всякий случай...
У меня ничего не циклится.

Это сообщение отредактировал(а) paraZite - 10.4.2006, 22:44
PM ICQ   Вверх
IvanB
Дата 11.4.2006, 09:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 155
Регистрация: 23.5.2005
Где: Irkutsk

Репутация: нет
Всего: 5



Имхо, для улучшения безопасности содержимое кукиса желательно завязывать на IP пользователя и ID сессии (или что там у вас)...smile
Извините, если не то.....)
--------------------
Закон отладки: Каждая последняя ошибка является предпоследней.
PM MAIL ICQ   Вверх
Elfet
Дата 11.4.2006, 11:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Это все понятно smile А попробуйте сделать тоже самое без базы, как можно проще ;)


--------------------
PM MAIL WWW Skype   Вверх
IvanB
Дата 11.4.2006, 12:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 155
Регистрация: 23.5.2005
Где: Irkutsk

Репутация: нет
Всего: 5



Через файлы, чтоли? smile
--------------------
Закон отладки: Каждая последняя ошибка является предпоследней.
PM MAIL ICQ   Вверх
Elfet
Дата 11.4.2006, 12:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Нет, воотбе без использования бд smile Нужен был простой, самый простой способ авторизации smile


--------------------
PM MAIL WWW Skype   Вверх
Страницы: (3) [Все] 1 2 3 
Ответ в темуСоздание новой темы Создание опроса

Внимание: данный раздел предназначен для решения сложных, нестандартных задач.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Для профи | Следующая тема »


 




[ Время генерации скрипта: 0.1908 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.