Показаны сообщения с ярлыком чат. Показать все сообщения
Показаны сообщения с ярлыком чат. Показать все сообщения

пятница, мая 25, 2007

Вести с фронта: Вход... в никуда

Написан код входа и аутентификации со всеми запланированными криптонагромождениями. Оно сработало... оно впустило! Правда, сам чат пока — пустая страница, уже умеющая, правда, выбрасывать по тайм-ауту.

На фасаде чата написано «седьмой год» — после напряжённого мозгового icq-штурма мы с Мао решили, что старая «Американка» была открыта «лет шесть назад, не меньше» — большей точности достичь не удалось.

Планировал всю графику делать в SVG, но обнаружил, что мой собственный Firefox не понимает SVG без плагина (пользуюсь дома полторашкой, версия 2 уже всё умеет). Жаль, но SVG ещё недостаточно повсеместный формат для графики. А XXI век на дворе...

среда, мая 23, 2007

Вести в фронта: Американка NG

Чтобы не дать самому себе заложить проект под сукно, веду ежедневный дневник работы над сабжем.

Вчерашний вечер потратил на систему защиты. Прежняя «Американка» была очень устойчива к банальным манипуляциям над URL и cookies, но времена изменились: если пять лет назад слово «сниффер» знали только кулхацкеры, то нынче этой штукой элегантно пользуются и домохозяйки. Обладатель сниффера в локалке в течение дня станет хозяином всех цифровых личностей коллег—посетителей «Американки»... старой «Американки».

Американка NG будет выдерживать разумный компромисс между удобством, простотой и безопасностью.

1. Удобство — неиспользование HTTPS (оглядываясь на мобильные платформы и прочие облегченные клиенты; и помня, что услуга HTTPS не всегда под рукой).

2. Простота — реализация минимальным объёмом кода с сохранением максимума наработок старой «Американки» (хорошо себя показавших).

3. Безопасность — даже полностью наблюдая трафик посетителя чата, «человек посередине» будет иметь трудности с применением результатов своих наблюдений.

Система безопасности Американки NG делится на два этапа: безопасный вход в чат (этого не было вообще) и безопасная работа с ним (это было, но больше не отвечает реалиям).

Взамен простой, как ситцевое исподнее, отправки логина-пароля открытым текстом, вход в чат выглядит (не сегодняшний день) так:

Человек открывает страницу входа. С ней передаётся хэшированный MD5 ключ для логина. По нажатию кнопочки входа браузер посредством Javascript: а) прибавляет ключ к паролю; б) снова хэширует полученный текст по MD5; в) обнуляет текстовый пароль; 4) передаёт логин и хэш на сервер. Зная начальный ключ и ожидаемый пароль, сервер заново создаёт ожидаемый хэш пароля и сравнивает его с полученным. Текстовый пароль, таким образом, не передаётся, а перехваченный «человеком посередине» хэш нельзя будет использовать для повторного логина: начальный ключ логина не будет совпадать.

Мне пока неясно, нужно ли делать хэширование реквизитов во время работы с чатом. Воможно, что и нет. Одноразовые «жетоны безопасности» сами по себе хороши, а с увеличенной в разы частотой их обновления в новой «Американке» они станут ещё лучше.

Конечно, все эти ухищрения блекнут в случае, если «человек посередине» может не только наблюдать, но перехватывать трафик пациента, заменяя его своим. Но... в конце концов, это всего лишь веб-чат :-) Нужно сделать так, чтобы «каждая домохозяйка» не могла прочесть перехваченный пароль, всё.

Из других контуров будущего чата просматриваются:

1) Юникод. Это будет первый мой веб-проект (стыд, стыд) сделанный изначально и целиком в UTF-8. Долой разброд и шатание в русском языке.

2) Не по-вебчатовски насыщенный чат. Благодаря тому, что в Американке NG не будут вновь и вновь передаваться страницы реплик (а только новые из них), сэкономленный трафик можно пустить на аватары в списке пользователей, а пожалуй — и в самом тексте чата.

3) Сохраняется милая сердцам ветеранов цветовая гамма старой «Американки», но, скорее всего, будут предусмотрены переключаемые в реальном времени скины.

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

вторник, мая 22, 2007

Американка-чат Reloaded

Йессс!

Идея реанимировать «Американку» периодически озаряла умы моих приятелей... озаряла-озаряла, да и озарила наконец. Servac, экс-модератор старой «Американки», решил пожертвовать для этого дела хостинг и трафик (благо всё копеечное).

Я раскопал архивные скрипты и с уважением ощупал их, как старое, но грозное оружие.

Они хороши, но они страшно стары. Чат на фреймах, работающий через Refresh... брр... SMS-доступ был хорош для своего времени, но кому он нужен в эпоху смартфонов? И так далее почти по всем пунктам.

Походив с этими мыслями с неделю (а быстрее и кошки не родятся), я пришёл к выводу, что «Американку» надо переписать с использованием AJAX и DHTML посредством вездесущей баблиотеки Prototype. Потребляемый ею трафик сократится на порядок благодаря тому, что обновления будут передаваться штучно, как в IRC. Удобство возрастёт на столько же. Взять лучшее от IRC, веб-форумов и старой «Американки».

Осталось, как обычно, только сесть да сделать. Вот он, момент зачатия «Американки NG»:

Поиск по этому блогу