
ChatX 1.2.0
Настало время, и мы готовы выпустить новую, обновленную версию ChatX. Это серьезное обновление, которое затрагивает каждый аспект чата и включает в себя новые возможности, переосмысление стилей, исправление ошибок, патчи безопасности серверной части ChatX и многое другое. С данным обновление мы выводим скрипт на новый уровень: изначально главными задачами при разработке скрипта были простота (в т.ч. установки) и возможность работать корректно на ЛЮБЫХ сайтах. С данной версией чата мы значительно продвинулись с реализацией поставленных задач.
Чат работает «из коробки», однако теперь, при необходимости, можно использовать чат на сайтах других доменных имён или директорий, просто изменив пару опций и встроив код чата на необходимую страницу.
В новой версии ChatX появилось меню «настройки» со всплывающим диалоговым окном по клику на шестеренку. Отныне Вы можете менять частоту обновления чата: по умолчанию, для экономии ресурсов и трафика, чат обновляется каждые 15 секунд, однако, в случае, если беседа очень интенсивна, а скорость играет ключевую роль, Вы можете через меню настроек переключиться на «Быстрое обновление», тогда чат будет обновляться каждую секунду. Выбранная вами опция запоминается в локальное хранилище.
PS: для экономии ресурсов и трафика мы настоятельно рекомендуем «быстрое обновление» только в ситуациях реальной необходимости.
Также стоит отметить, что в данной версии нами были переосмыслены используемые в чате иконки. Мы подключили их через шрифт, что означает привлекательный вид на некоторых устройствах (в т.ч. мобильных) и бОльшую возможность для кастомизации при написании собственного стиля для чата. Некоторые стили и элементы были переписаны, исправлены ошибки при отображении (в т.ч. кнопки «Отправить» и поля ввода ник-нейма), добавили потерянный закрывающий тег Body для демо.
Некоторые функции были оптимизированы: переработан ограничитель для чата (область, за которую чат выходить не может), новый вариант исключает съезд чата за рамки экрана по вертикали, а также способствует кроссплатформенности. Позиционирование чата теперь задается через javascript, в случае если координаты отсутствую в локальном хранилище браузера, диалоговому окну задаются координаты по-умолчанию. Также мы добавили текстовое поле False_chat_name для ввода ник-нейма и скрыли подлинное поле. Это позволило избежать ошибок позиционирования поля.
Как уже было отмечено ранее, мы стремимся к кроссплатформенность нашего скрипта. На стадии тестирования мы столкнулись с проблемой Cros-Origin Resurse Sharing, когда браузер не позволяет использовать сторонние файлы и исполнительные файлы. Побороть это было просто: был создан в корне файл .htacess для создания CORS (Cross-Origin Resource Sharing) header.
Немаловажной частью работы над скриптом стало улучшение безопасности серверной части: провели работы на серверной стороне, которые должны предотвратить возможные атаки на сервер извне, а именно: длинна никнейма теперь проверяется через PHP и не должна превышать 15 символов, длинна сообщения не должна превышать 240 символов. В случае, если эти правила нарушены, сервер проигнорирует отправленные данные. Также в процессе разработки мы столкнулись с интересным явлением: в чате появились сообщения от двух посетителей, их ник-нейм был заполнен, но сообщение отсутствовало: по нашему мнению, это были спам-боты, у которых, в прочем, не получилось правильно использовать систему (возможно из-за ограничены по числу символов). Мы запретили отправку пустых сообщений через серверную часть, а также удалили прямой адрес на исполнительный pup-файл по клику на submit (хранится теперь только в JS). Как итог, принятые меры полностью остановили попытки (успешные) заспамить чат, в данный момент смысла бояться спама в чате нет.
[UPD 11.09.17]
Поскольку данная версия на момент написания этой заметки еще не была публично представлена, мы решили добавить к ней еще несколько дополнительных обновлений и нововведений: Обновлена база Emoji, теперь работает без багов (пока не нашли), база значительно расширилась; время публикаций было переведено на русский; из папки скрипта были удалены лишние файлы, что значительно уменьшило вес конечного продукта; настройка скрипта упростилась до редактирования одной строчки; форма отправки теперь масштабируется по другой технологии; проведены дополнительные работы с серверной частью чата.
Keep Calm, Keep ChatX!