LINUX.ORG.RU
ФорумTalks

Ещё один форумный движок

 , ,


2

4

Я к этому отношения не имею. Может, кому-то здесь будет интересно. PHP, MySQL.

https://github.com/avkoudinov/simpleCommunicator

Используется https://nosql.itwrks.org/forum/forums.php

Обсуждение попыток взлома было где-то здесь: https://nosql.itwrks.org/forum/topic.php?fid=8&tid=10422&all=1

★★★★★

Ответ на: комментарий от cocucka

Еще существует Ъ-чат движок на сишечке, но пес зажал исходники.

Можешь ему написать, он очень расстраивается, что его движок все игнорируют. Может, убедишь открыть :)

question4 ★★★★★
() автор топика

Посмотрел код, в надежде, что за почти 30 лет PHP-шники хотя бы немного эволюционировали.

Нет, всё то же отвратительное нечитаемое спагетти, разбросанное по кускам инклюдов, как конфетти.

emorozov
()
Ответ на: комментарий от emorozov

Версия: 23.05.14

Немного намекает что это протухшие фекалии, которые какие-то копрофилы залили на гитхаб. А ты и рад хлебать.

no-such-file ★★★★★
()
Ответ на: комментарий от Anoxemian

Олдскулы свело.

Мне сейчас доставило:

ВНИМАНИЕ! В период

с 25.06.2023, 02:00:00 до 25.06.2023, 04:00:00 
временная зона: [GMT+03:00] Europe/Moscow

выполняются работы по резервному копированию, поэтому возможно снижение скорости работы форума!

Это как же «и | или где» ентот форум надо крутить, что бы бэкап «снижал скорость работы» на целых два часа?

anc ★★★★★
()

php

не нужно
/thread
Ну в самом деле. 2к23 год на дворе, надо чтобы там вебсокет, работал быстро как чат, всякая динамика, свистелки, перделки, ветки, подветки, мобилки, репликации, федерация, етц. А тут пердёж из нулевых с похапе, cgi-bin, апачом и по процессу на запрос. Впрочем, понятно, это же дедофорум.

crutch_master ★★★★★
()
Последнее исправление: crutch_master (всего исправлений: 1)
Ответ на: комментарий от ox55ff

Какой же всратый дизайн.

Какой язык PHP такой и дизайн.

EXL ★★★★★
()
Ответ на: комментарий от ox55ff

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

Brillenschlange
()

чет как то слишком «перемудреный» код. можно было за неделю такое же на ларавель написать и другим разрабам было бы проще работать с таким проектом…

romanlinux ★★★
()
Ответ на: комментарий от emorozov

за почти 30 лет

Плохой пример для изучения. По ссылке код как раз в стиле 20-лет давности + похожий на написанный школьниками. Современный был бы тоже спагетти, разбросанный по инклюдам, только ООП с кучей мусорных классов с длинными названиями и вложенностью функций по 10-15 штук. Я не говорю, что он лучше (скорее это наоборот хуже), но он был бы другой.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 2)
Ответ на: комментарий от no-such-file

Нет, дата у них записана как раз правильно - все разряды в порядке уменьшения значимости. Разве что точки может быть лишние.

firkax ★★★★★
()
Ответ на: комментарий от firkax

Ну, я неверно наверное понял посыл автора оригинальной новости, что это прям пример элегантного кода. Пытался, видимо, прочитать между строк через libastral. Зашёл, а там типичное спагетти.

emorozov
()
Ответ на: комментарий от ox55ff

Я опубликовал тему в профильном разделе, ссылку уже привели выше, там в общих чертах написано, почему такой дизайн. Дизайн в духе sql.ru для сохранения атмосферы того ресурса, ностальгия и привычное окружение для прежних участников. Хотя лично мне в принципе такой дизайн нравится и без ностальгии. Ну это дело вкуса, конечно.

avkoudinov
()
Ответ на: комментарий от no-such-file

Это просто дата, 2023.05.14. В порядке отсчёта, год, месяц, день и т.д. Форум в массы не планировался, красивым версионированием никто не заморачивался. А так в целом удобно для использования между собой, например, forum_20230627_ed1.zip. Понятно, когда сделан архив и какая редакция в этот день. Ну и легко упорядочивается. Отсюда и версия.

avkoudinov
()
Ответ на: комментарий от anc

На самом деле в данный момент это сообщение особой смысловой нагрузки не несёт. В указанный период выполняется резервное копирование некоторых системных каталогов сервера, каталогов с веб-ресурсами, форум, сайт, базы данных. Также могут выполняться скрипты обслуживания. По времени занимает несколько минут, нагрузки на систему не создаёт. Но тут есть некая предыстория. С 2015 года по 2022, автор форума самостоятельно занимался всеми вопросами и ежедневно ночью выполнялось копирование БД и её очистка от приватной информации (лички, ip адреса и т.п.) и далее очищенная БД предоставлялась в паблик. Эта процедура достаточна накладная, могла занимать длительное время. Я решил от данной практики отказаться, лучше определить круг доверенных лиц, которые смогут в случае чего продолжить. В общем, в данный момент никакиого практического смысла в этом сообщении нет, но всё-равно, я могу проводить какие-нибудь работы, просто уведомление об окне обслуживания.

avkoudinov
()
Ответ на: комментарий от crutch_master

Схема работы: nginx->apache->php-fpm->MySQL. Олдскульно, да. На мобилках работает вменяемо, масштабируемо под устройство. Некая динамика на сформированной странице все-же присутствует: подгрузка событий, сообщений, страница не статична, ну например пришёл ответ на сообщение, у пользователя появляется циферка в событиях, либо в разделе форума он видит, что-то новое. Не надо рефрешить страницу, если речь про это.

avkoudinov
()
Ответ на: комментарий от romanlinux

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

avkoudinov
()
Ответ на: комментарий от romanlinux

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

avkoudinov
()
Ответ на: комментарий от firkax

В данный момент используются:

  • ВМ как абонентский пункт администратора, на которой выполняются некоторые задачи автоматизации, например, выписка сертификатов SSL, с неё же осуществляется доступ непосредственно к серверу форума, ну хотя бы хоть какие элементы безопасности соблюсти

  • ВМ непосредственно с самим форумом

  • Яндекс360 для выгрузки бэкапов и почты (как хранилище не очень удобно, но дешево и сердито)

  • сейчас буду использовать ещё одну ВМ, так как в связи с публикацией на GitHub хотелось бы подготовить релизные версии и проверить их установку с нуля в максимально близких к реальным условиях, заодно и детальнее описать процесс установки, какие дополнительные пакеты и т.д.

ВМ с форумом представляет из себя следующую конфигурацию: https://masterhost.ru/vps/dragon/ Пока по ресурсам достаточно.

До февраля 2022 я арендовал сервер гораздо более интересной конфигурации, 2 x Intel Xeon E5 2620, 128 Гб оперативы, 960 Гб SSD в аппаратном рейде и подсетку /28 у немецкого провайдера velia.net (ностальгический пост на эту тему - http://nosql.itwrks.org/forum/topic.php?fid=8&tid=115&msg=2063). Обходилось это примерно 10 000 рублей в месяц. потом возможность оплачивать пропала по известным причинам и сейчас приходится довольствоваться виртуализацией, так как цены на выделенные серверы в РФ высокие.

avkoudinov
()
Ответ на: комментарий от firkax

Разве что точки может быть лишние

Не «разве что», а в этом проблема. В обратном порядке пишется через тире. Версия пишется без точек. Ну а год двумя цифрами писать это вообще зашквар.

Вообще, тем хуже для автора, потому что такое лепить в 2023 это клинический диагноз.

no-such-file ★★★★★
()
Последнее исправление: no-such-file (всего исправлений: 2)
Ответ на: комментарий от avkoudinov

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

crutch_master ★★★★★
()
Ответ на: комментарий от crutch_master

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

Я не разработчик, детально прокомментировать не могу. Ну у нас есть местный кулхацкер Пошо, выше он обозначен здесь trisobakov и вам здесь он известен как создатель http://fintank.ru/game/ Вот он постоянно занимается поиском, как нагадить )) а автор форума это фиксит.

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

avkoudinov
()
Ответ на: комментарий от avkoudinov

форум не будет их обрабатывать, просто, так сказать, забанит на время и переложит на уровень веб-сервера

А подробнее?

я тоже занималсся из хулиганских побуждений ддосом

Сколько k нод было в хулиганском побуждении?

julixs ★★★
()
Ответ на: комментарий от julixs

А подробнее? Сколько k нод было в хулиганском побуждении?

Ок. Немного подробнее. Это, наверное, что-то вроде fail2ban, хотя сравнение очень и очень приблизительное, тем не менее смысл тот же. Ну понятно, что у нас нет возможностей использовать аппаратные балансировщики, брандмауэры с инспекцией трафика. В данный момент это даже не отдельный физический сервер, а арендуемая KVM. Как я выше писал, ранее арендовал сервер с более менее приличными аппаратными ресурсами, на котором функционировала среда виртуализации и вот там уже простор шире, в том числе для обеспечения элементарных мер защиты, можно управлять трафиком на уровне виртуальных роутеров (vyos я использовал в failover конфигурации) и т.д. Однако в РФ аренда физических серверов - неадекватно дорого, а платить 15000+ ежемесячно (это минимально по моим подсчетам, что я хотел бы сделать) за то, чтобы 50 более менее активных мемберов обзывались и обсуждали огурцы на даче у меня желания нет. Да, на форум донатят, но это не постоянное явление.

Вернёмся к элементам защиты. Понятно, что в обозначенном выше случае, единственная возможность как-то обезопаситься от хакера-школотрона, скачавшего хотя бы скрипты нагрузочного тестирования - штатные средства ОС и прикладного ПО. В данном случае идеально хулигана пришибить нетфильтром, это вообще крайне эффективно и нересурсоёмко. Чуть хуже вариант - пришибить средствами веб-сервера, deny и всё, на дальнейшую обработку запрос не приходит. Я даже не смотрел, как реализовано у автора форума, реализовано на уровне приложения, после определённого количества запросов в сессии - будет отлуп вида Too many connections, запрос обрабатываться далее интерпретатором не будет и к БД обращения не будет (надо сказать, что самое прожорливое по CPU у форума - MySQL, остальное по нулям практически). Как воспроизвести, открыть форум, например, в 50 - 100 вкладках, оно и забанит на час. Либо можно просто бешено отрефрешить страницу, тоже забанит. У нас есть любители открывать по 100 вкладок в барузере, возмущённо жалуются иногда, что я их прибанил, а это не я.

Что я делал в этом плане. Использовал скрипты нагрузочного тестирования, натравливая их в наиболее узкие места, поиск по форуму, в большие темы + обладая знанием некоторой специфики форума так, чтобы формировался более сложный запрос SQL. Использовал порядка 10 виртуалок. Да, начало тормозить и ощутимо. Ну надого не запускал, я же всё-таки участником был, так немного попакостить на пару с хакером Павлом. Как результат автор сделал элементарные средства защиты, после которых подобные попытки пакостить стали неэффективными.

В итоге, будем реалистами. В данный момент из всех возможностей защиты у нас только штатные средства ОС и прикладного ПО. От мелких хулиганов и пакостников помогает, крупных врагов у нас вроде бы нет, кому мы нужны то. Средств инспекции злонамеренного трафика нет, так что теоретически хулиган может отправлять стресс-запросы, допустим, со 100 узлов, но практически где он их возьмет, арендует в амазон, digital ocean, чтобы задосить 50 пенсионеров на задворках интернета? Ну если такое всё-таки возникнет, буду банить нетфильтром целиком автономные системы, откуда трафик гененируется. Другое дело - нормальные пользователи. В данный момент перманентный онлайн примерно 100 - 200 пользователей (много читателей со старого ресурса, они читают, но не регистрируются и не пишут, это нормальное явление для этого форума). Из них активно могут участвовать примерно 50 человек, но это не так часто. Ну если вдруг будет больше посетителей и всё начнёт неадекватно тормозить - будем думать, что делать. По ситуации. Пока проблем с этим нет.

avkoudinov
()
Ответ на: комментарий от no-such-file

Не «разве что», а в этом проблема. В обратном порядке пишется через тире. Версия пишется без точек. Ну а год двумя цифрами писать это вообще зашквар. Вообще, тем хуже для автора, потому что такое лепить в 2023 это клинический диагноз.

Да какая разница как его именовать для работы между собой, если оба участника согласовали между собой схему версионирования.

Но раз опубликовали в массы - привели к общепринятым стандартам в более менее человеческий вид. Подробнее в профильном разделе Форум simpleCommunicator (комментарий)

avkoudinov
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)