
Комментарии 17
без сарказма, по мессенджерам реальный дефицит. пили не останавливайся
ну это же.. ..база??? Безопасность на фронт-енде это вообще основа основ как не надо делать, тут даже бы нейросеть подсказала что так нельзя.
в тему бы было открыть исходный код - тут недавно была статья про месенджер на локальной сети и как по мне чем больше будет открытых проектов подобного толка тем быстрее мы получим оптимальный открытый и безопасный месенджер
почему за открытость - проблемы безопасности и тд это цветочки и та самая база, а вот ягодки это транспортный уровень Централизованый сервер сейчас нынче самое плохое для месенджера, особенно централизованный закрыто, то есть административно похоронить проект даже больше возможностей.
У нас уже давно есть открытый, полноценный, безопасный, распределенный мессенджер - джабер. Дело за малым, осталось только написать для него хороший клиент на андроид и айфон, и поднять сервера которые будут бесплатно хранить мегатонны юзерских картинок, голосовух, и рилсов.
А, ну и еще надо будет как то людей в него завлечь, мессенджер без людей никому не нужен.
Завлечь будет сложнее всего, ниша рабочего на парковке занята максом и его оттуда не подвинуть, телеграм с вотсапом занимают центральные места, и есть еще группа в полосатых купальниках по границам - тиктоки, инстакрапы итп. Какой у нас план?
да клиентов как грязи разных
есть даже полноценные фронт-енды аля социальная сеть по типу https://movim.eu/
с XMPP проблема в том что он огромный и массивный - поднять у себя selfhost целое приключение где чисто в параметрах настройки можно потонуть
@gerbert_MX Спасибо за честность и конкретику. Вы безусловно правы: безопасность на клиенте — это одна из классических ошибок, которые я увы упустил на раннем этапе. В 0.9.48 мы перенесли проверку доступа к истории и диалогам на бэкенд через единый ConversationAccessService, а публичные DTO теперь не содержат email. В общем - уже реализовано :)
По поводу открытости: я не против открытого кода в будущем, но пока «Пульс» — это мой личный проект, и я хочу сначала довести архитектуру до такого состояния, чтобы открытие не превратилось в «посмотрите, как здесь всё страшно», а там и правда сейчас есть страшные решения, которые мне еще предстоит переделать... Стыдно - если кратко. А децентрализация — это интересный вызов, но для начала нужно пройти текущий этап: безопасность, стабильность, UX. Если проект выживет и окрепнет — можно будет подумать и об этом. Ещё раз спасибо за откровенность.
Я получил … полноценный аудит проекта
Поздравляю, что открыли одно из свойств Хабра. Пользуюсь этим уже несколько лет
Если бы не было вначале кривой саморекламы , заходило бы лучше .
Сначала ценность потом реклама
Для поддержки пуш уведомлений посмотрите на https://ntfy.sh/ и https://unifiedpush.org пожалуйста.
«Я уже нашёл достаточно. Если копнуть глубже — найду ещё.»
врубить параноика в данной ситуации конечно хорошо, но это совершенно точно не то что я имел ввиду.
Проблема с поиском уязвимостей в том что это не слишком тривиально, когда делаешь условный 15-минутый забег на тестирование функционала. Можно наверное за это время успеть собрать несколько векторов атаки из разряд low hanging fruit - какие-нибудь инъекции в полях, XSRF, но у меня маловато опыта, чтобы такое провернуть с полпинка и не сказать чтобы много мотивации этим заниматься. Но то что это заставило задуматься о моделях угроз - определённо хороший шаг.
Теперь пришло время заниматься безопасностью загрузок:
про форк бомбы и rarjpeg ещё подумайте
Отдельно стоит подумать над тем чтобы пофаззить какие-нибудь публичные эндпоинты и посмотреть как оно будет себя чувствовать на каком-нибудь мусоре из юникода, например.
— 172 зарегистрированных пользователя;
вот тут вопрос - зарегестрированные пользователи - это те что с email или вообще любой? rate limit на регистрацию есть? кажется можно простым скриптом заспавнить тысячи пользователей без проблем. отдельный вопрос про disposable email а ля maildrop.cc, dropmail.me и прочие shitmail.
Возвращаясь к комментарию: это будет ultimate вариант аудита, когда ваш код будут ломать опираясь на код.
Спасибо, что заглянули и сюда, и снова потратили время, которое в нынешнее время на вес золота.
Вы отчасти правы, мой «параноик» был скорее реакцией на сам факт: «кто-то взял и нашёл проблемы». То есть я понял для себя это так - не столько конкретные уязвимости, сколько общий подход, на который я подзабил спустя 2 недели после начала разработки) Хотя возможно я ошибаюсь...
По вашим новым пунктам:
Безопасность загрузок - уже в роадмапе (0.9.52). Fork bombs и gapreg (я правильно понимаю, что речь о расширениях/MIME-атаках?)
Фаззинг публичных эндпоинтов - вот это кстати очень интересная идея. Надо будет поковыряться и опасные точки определить/проверить/закрыть... Я даже не думал пока еще в эту сторону. Все хочу еще до различных автотестов добраться, но пока, увы, рук всего 2...
Rate limit на регистрацию - да, вот рейт лимитер в 0.9.49 уже вышел - на авторизацию, восстановление (к слову переделал попап в маленький баннер, а подтверждение входа вывел в "Устройства" в профиле), поиск. А вот на регистрацию кстати нет... Так что да - щас еще остается потенциальная дырка на ней, что не есть хорошо. Вы меня снова спасаете!)
Насчёт открытости кода - пока не готов, потому что стыжусь - надо еще подчистить хвосты, разделить модели. Проводить аудит такого кода - это кровь из глаз. Но эта идея остаётся в голове. Я думаю, что когда-нибудь я доберусь до вида - не стыдно показать публично.
Ещё раз большое спасибо!
gapreg
ze what? я вроде не опечатался. Речь именно за rarjpeg - приклеивание архивов(и не только) к картинкам. Меняешь расширение с jpg на rar/exe/msi - получаешь с виду новый бинарь, который не является картинкой. Поэтому в случае загрузки картинок имеет смысл обрезать всё что к картинке не относится. Как-то так обычно в соц.сетях имеются разные варианты загрузок - картинкой, документом, файлом. Mime атаки это несколько иной зверь.
Как один комментарий на Хабре перевернул архитектуру моего мессенджера