Instant Messaging: строим свой клиент Косякин Антон Xakep, номер #062, стр. 062-118-4 Чуть не забыл Безопасность! За ней следи с самого начала. Даже если ты не собираешься показывать свое творение широкому кругу людей, а делаешь только для себя, все равно следи за безопасностью. Это действительно важно, поверь. Применяя это правило для проектирования систем обмена сообщениями, даю два совета. Совет первый: никогда не передавай пароль в открытом виде и используй хеш-функции. Идеальный вариант - откопай в интернете исходники программы md5sum и пользуйся этим кодом для "шифрования" передаваемого при авторизации пользователем пароля. Таким образом, знать его будет только обладатель, а в базе данных сервера будет сохранен только некоторый набор символов. Восстановить же сам пароль можно будет только при помощи брутфорса. Второй совет: после авторизации пользователя в системе введи некоторый идентификатор сессии, который будут знать только клиент и сервер. А все последующие передаваемые пакеты помечай этим идентификатором: включай его в заголовок, используй в качестве ключа для расшифровки и т.д. Человечество скажет тебе спасибо! :) Заключение Ну вот, собственно, я и поведал все, что хотел. Теперь дело за тобой - либо положить журнал на полку до лучших времен, либо в ближайшее время опробовать свои силы в этом вопросе. В любом случае, надеюсь, что я тебя заинтересовал. Удачи тебе в бою! Готовые клиенты Могу предложить тебе скачать готовые клиенты вместе с исходниками. Вот список урлов, который может оказаться полезным: www.miranda-im.org Весьма популярный клиент среди win-пользователей. Распространяется по лицензии GNU GPL, т.е. кто угодно может скачать сорсы и делать с ними что захочет. gnomeicu.sourceforge.net Никсовые исходники популярного клона ICQ – GnomeICU. Требует GTK. www.licq.org Один из самых распространенных никсовых ICQ-клиентов. Есть версии и под QT, и под GTK. Какие радости еще можно получить? Если ты будешь обладателем IM-системы с количеством пользователем, превышающим десятки тысяч, то у тебя появится возможность проводить занятные рассылки в своей системе. А за них ты также сможешь получать свой баблос. К тому же у тебя будет храниться база паролей пользователей. А это весьма ответственная штука. Ведь у многих юзеров пароли одинаковые на все сервисы. Так что тут есть о чем подумать. WARNING Все вышеизложенное - мое сугубо личное мнение. Это мои проблемы, с которыми столкнулся лично я. И варианты решений проблем также придуманы мной. Поэтому я не претендую на правильность и оптимальность предложенных действий. INFO Мой проект называется Чижик-Пыжик. Сейчас уже написаны серверная и клиентская части, но все это находится в стадии жесткого тестирования. |