Виртуальный Брест
Главная Портал Форум Рассылки Контакт Для клиентов Статьи

Магазин интимных товаров
Магазин интимных товаров
 
Выполним изыскательские работы
Выполним изыскательские работы
 
Запчасти для телефонов и ноутбуков
Запчасти для телефонов и ноутбуков
 

Виртуальный хостинг - дом для вашего сайта - лучшее предложение в Бресте!


Полный список глав книги

Технологии чата - начало


Здесь я хочу сказать несколько слов об одной проблеме. Моя основная цель - натолкнуть Вас на собственные исследования в этой области. Надо сказать, что это не так уж и сложно, как кажется на первый взгляд, и при определенных обстоятельствах есть возможность сделать свой собственный чат, пользуясь только РНР, и даже без поддержки баз данных. А этот материал - всего лишь маленький намек на те проблемы, и методы их решения, которые могут встретиться у Вас на пути.

Итак, чат. Очень многие вебмастера мечтают сделать для своих посетителей хороший чат, но они даже не представляют всю сложность этой задачи. Как правило, такой вебмастер идет проторенным путем, ищет в Интернете исходники чатов и размещает их у себя на сервере. Непременное условие - обязательное наличие на сервере поддержки одного из языков программирования. Как правило, чаты предпочитают делать на CGI (например, на языке Perl, но совсем не обязательно), и такие чаты получаются достаточно быстрыми и надежными.

Но как быть тому, кто по ряду причин не может себе позволить запускать скрипты CGI на своем сайте? Или не может до конца освоить один из языков программирования для CGI? Или, если даже и освоил один из языков для CGI, просто не знает, как подступиться к проблеме. Конечно, совсем без усилий тут не обойтись, ведь чат - дело серьезное, и требует к себе внимательного отношения.

Нет, вообще-то можно пойти и по легкому пути. Например - открыть свой чат на другом бесплатном сервере. А что - преимуществ масса, ведь вся настройка сводится к выбору цвета, расположения фреймов, другим мелким деталям...

Но есть как всегда и отрицательные стороны такого решения. Никто за просто так Вам не даст пользоваться своим чатом - придется рассчитываться тем, что на Вашем чате будут показываться неизвестно чьи баннеры. Да и прикрыть могут в любой момент. Только реально это единственный способ сделать чат тем, у кого хостинг не поддерживает CGI. Опять же – отрицательный момент в том, что посетитель на самом деле уйдет с Вашего сайта, а это тоже не есть хорошо.

Однако, как всегда есть способ лучше! Если Вы располагаете поддержкой сервера CGI или РНР, Вы можете легко найти в Интернете массу хороших и не очень скриптов чатов, и разместить их у себя на сайте, тогда Вы уже ни от кого не будете зависеть. Но есть недостатки и у этого способа. Дело в том, что исходники таких чатов всегда общедоступны. И у них почти всегда обнаруживается какая-нибудь уязвимость, позволяющая злоумышленникам взламывать Ваш любимый чат.

Не всегда такие взломы приносят существенный вред, но все равно не приятно, что кто-то роется там, где доступа никому нет. Итак, если Вы готовы воспользоваться уже написанным кем-то кодом чата, будьте готовы к двум проблемам - предварительной настройке чата (это тоже не так просто иногда), и к возможности взлома чата недоброжелателями через стандартную ошибку, коими часто просто изобилуют бесплатные скрипты.

Если перечисленные вопросы очень важны для Вас, придется идти по трудному и сложному пути - пути создания своего собственного чата. Для основного языка программирования можно выбрать РНР, так как его поддержка наиболее часто встречается на серверах в сети. Кроме того, исключительно из совместимости можно поставить себе ряд условий - никаких баз данных, и работоспособность на версии РНР3.

Это еще больше усложняет задачу, так как придется отказаться от сессий, поддержка которых включена только в 4 версию РНР. Но - именно это дает нам возможность важной для нас сейчас совместимости, уж на 3 версии работают сейчас все сервера в сети. Итак, я повторюсь - основная наша задача есть работа чата на РНР версии 3 без баз данных.

Этот материал писался в то время, когда 4 версия языка HYH только появилась в сети, и еще не получила достаточного распространения. В целях сохранения последовательности изложения мысли я оставляю данный текст неизменным, но Вы помните о том, что все меняется в этом мире. Главное – суть осталась.

Что можно сделать исходя из поставленных условий? Очень многое на самом деле. Во-первых, нам придется решать проблемы авторизации пользователей в чате. Это - одна из самых больших проблем, и не только в чатах, но и во всем мире.

Предложенных решений масса, но у каждого из них есть очень большой недостаток - знание того, как все шифруется, неизбежно приводит к появлению алгоритмов расшифровки. Значит, нам придется делать свой собственный алгоритм шифрования паролей пользователей с условием невозможности расшифровки за разумный промежуток времени (надеюсь, NASA или ФБР не будут ломать Ваш чат).

Кроме того, неплохо бы было сделать так, чтобы даже при краже файла с паролями их невозможно было бы расшифровать. В моем опыте есть случай, когда ошибка одного скрипта привела к появлению возможности доступа к исходникам на сайте, и - к краже паролей.

Правда, тут есть и большой минус. Если человек забыл пароль, его нельзя уже восстановить, так как пароль нигде не хранится незашифрованным. В этом случае можно удалять регистрационную запись пользователя и предоставить ему возможность повторно зарегистрироваться.

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

Возможно, покажется странным, что пароли будут шифроваться до такого состояния, что их нельзя (мы уже условились, что нельзя - это значит нельзя за разумный промежуток времени, а вообще-то можно все, только долго) даже расшифровать. Как же эти пароли будут проверяться на соответствие с хранимым в базе зашифрованным паролем?

Все очень просто и элегантно. Я опишу на примере Windosw2000, где реализован примерно следующий алгоритм. При регистрации пользователь вводит свой пароль, он обрабатывается специальной функцией необратимого шифрования и результат заносится в базу паролей вместе с учетными записями (имя пользователя, описание и т.д.). Когда пользователь входит в систему в следующий раз, Windows опять шифрует введенный пароль  своей стандартной функцией и сравнивает результат с тем, что хранится у нее в базе данных паролей. Если результат шифрования введенного пароля и хранящегося в базе есть идентичные строки, пользователь авторизован, если нет - ошибка ввода пароля.

Таким образом, достигается большая конфиденциальность, так как пароль не хранится в открытом виде, а хранится уникальный идентификатор строки, соответствующей паролю. И даже если база данных с хранимыми паролями будет украдена, толку от этого похитителю будет мало, ведь открытых паролей там нет, только зашифрованные. А обратной расшифровке такие идентификаторы просто не поддаются, уж так устроена функция шифрования.

Читать еще...



Пол Хадсон

PHP. Справочник
Книга представляет собой полное и наглядное справочное пособие по РНР. В числе многих преимуществ РНР перед другими языками web-программирования - легкость разработки и простота...

Эд Титтел, Джефф Ноубл

HTML, XHTML и CSS для `чайников`
Вам не нужно быть экспертом в области программирования, чтобы создавать современные веб-страницы. Даже имея минимальный опыт, можно вооружиться правильными инструментами, изучить...

Сьюзан Уэйншенк

Интуитивный веб-дизайн
Почему люди принимают решение о покупке в интернет-магазине? Регистрируются на веб-сайте? Верят или не верят вашим публикациям в Интернете? "Интуитивный веб-дизайн" объединяет...

Джон Дакетт

Основы веб-программирования с использованием HTML, XHTLM и CSS
Существуют три основные технологии, обеспечивающие работу всех сайтов на клиентской стороне. Это HTML (XHTML), CSS и JavaScript. Рассматривать любую из них отдельно от других...

    Информация

Главная - переход на начало
Тарифы на Российский хостинг
Правила - что можно а что нет
Заказ - сделайте это сейчас
Выбор домена - найди свое имя
Регистрация домена - купить
Оплата - варианты для всех
Панель управления Россия
Панель управления Беларусь
Вопросы и ответы - информация
Разработка сайтов - сопровождение
Виртуальный Брест - портал
Контакт - обратная связь
Наш форум - пообщаемся?

Список доменов
в которых доступна бесплатная регистрация имен при покупке хостинга, а так же открытие поч- тового ящика:

Новости Бреста:

Второй порыв теплосетей в Бресте - двенадцать многоэтажных домов и один детский сад остались без тепла
Почти тонну мёда задержали налоговики при проверке в Бресте
Зарплата в конвертах в Бресте - видео
Трое жителей Кавказа в "поисках работы" забрались прямо в лес в пограничную зону
Профилактика квартирных краж - важно
Современный животноводческий комплекс на 1500 голов строится в СПК "Королевский" Кобринского района - фото
Результаты проходящей на территории Брестской области акции "Не упусти свой шанс"
Осенний месячник по наведению порядка на земле проходит на Брестчине - важно
В Лунинецком районе в водоеме нашли автомобиль с телом внутри
ГАИ: брестчанин решил стать маршрутчиком и в пьяном состоянии вез горожан

© Виртуальный Брест 2001 - 2009 Автор проекта: Андрей Кухарчик Дизайн: Partgraphic