LINUX.ORG.RU

Какой из открытых форумных движков считается наиболее безопасным?

 , ,


1

3

Посмотрел я сюда: Comparison of Internet forum software и грустно стало, если руби или другие языки (python/django, perl, golang, plain js, elixir и т.п.) такие крутые, то почему еще никто не написал нормальные форумные движки не на PHP?

Discourse хорош, но его-то классическим форумом не назовешь, а мне нужен именно такой.

Поэтому вопрос: какой из открытых форумных движков (на PHP, я так понимаю) считается наиболее безопасным, активнее исправляются ошибки и вопросы секурности?

Спасибо.



Последнее исправление: kep (всего исправлений: 2)

Почему за меня не написали «%имя_софта%» на каком-то крутом «%имя_языка%»?

fxd

активнее исправляются ошибки и вопросы секурности?

сортируешь по популярности, берешь первых 5 и в git (или где там у них код валяется) смотришь активность и скорость реакции на открытые баги
логично же

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

спасибо, посмотрю, тему закрываю.

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

Движок, через который меня ломали чаще всего :)

...

Вот, через который никогда не ломали (и внутри не самый паршивый, весьма быстрый и функциональный) — это MyBB.

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

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

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

У phpBB есть проблема со спам-ботами

Было дело. Не стандартная капча вроде спасает(мне помогла вот эта)

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

что бы самому не костылять и не нужно было поддерживать эти костыли.

Свои-то костыли проще поддерживать чем чужие.

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

а что ты думаешь про phpBB?

2-я версия была жутко дырявая. 3-ю ругают меньше, но всё же ругают. Сам не сталкивался, меня отталкивает совершенно кривая разметка сообщений при хранении в БД, посредственный функционал, отсутствие полноценной (без необходимости патчить руками) плагинной системы и т.п.

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

То-то на гитхабе сплошные баги в issues.

Я не говорю, что там нет багов. Я говорю, что меня через MyBB никогда не ломали, в отличие от SMF (или phpBB).

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

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

В общем буду пробовать phpBB.

kep
() автор топика

эмммм. форум с регистрацией — это 1000 строчек кода на PHP. для начала, давайте определимся, чего вы ожидаете от форума.

вот мой, например, самописанный: http://spfng.com/forum/

и всё работает. ну как, работает: создаёте категории форумов, в них создаёте темы, в темах пишите ответы. в этом же заключается суть форумов?

хотите пофлудить, пожалуйста, сюда: http://spfng.com/forum/forum.main/

могу отделить код для вас, если очень нужен форум. или давайте пилить форум вместе?

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

Какой из открытых форумных движков считается наиболее безопасным?

<пиарит самописный>

даже не смешно.

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

ну я не знаю, а чего там опасаться то? форум штука простая. записали в БД — вывели сообщения. при выполнении SQL-запросов биндим все данные bind(':text', $_POST['text']);, при выводе HTML-странички делаем htmlspecialchars($text);. усё.

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

или давайте пилить форум вместе?

бог миловал уметь в пхп, да и не очень мне ваш форум подходит :)

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

не очень мне ваш форум подходит

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

помимо тем и ответов, чего вы ещё хотите от форума?

Spoofing ★★★★★
()

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

q11q11 ★★★★★
()
Последнее исправление: q11q11 (всего исправлений: 2)
Ответ на: комментарий от t184256

ну! :) я не знаю, чо они косячат.

я тоже косячу порой, просто не всё учитываю. проблемы оказываются в тех местах, о которых даже не подозреваешь. недавно, благодаря одному человечку c ЛОРа с никнеймом chalker, исправил такую уязвимость https://en.wikipedia.org/wiki/Session_fixation, ну кто бы мог подумать? уязвимость на уязвимости, костыль на костыле, но веб такой. понимаете, чем больше свободы, возможностей имеется, тем больше находится способов для взлома и уязвимостей, как например CSRF.

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

ну вот берём значит и начинаем вокруг этих двух операций городить костыли. напишем класс, чтобы можно было записывать в БД. написали. а давайте сделаем класс, чтобы иметь поддежку нескольких БД. а давайте прикрутим API, чтобы не только с SQL работать напрямую, а мы передаём функции свои параметры, а она в зависимости от вида БД (SQL, noSQL, текстовые файлы, удалённый сервер, сетевой протокол, 100500 других вариантов) сама определит формат для записи!

теперь вывод имеющихся данных. те же самые классы, только вместо записи — чтение. а давайте сделаем вывод в различных форматах, чтобы не только HTML из шаблонов рисовать, а ещё выводить те же самые данные форматах XML для RSS/Atom, json для всеразличных видов API, serialize в PHP не знаю зачем просто пусть выводит потому что yes we can!

то есть блин, я хочу сказать, вот просто тупо записать данные в базу и вывести из неё, какие тут можно допустить ошибки? все данные при записи эскейпим в bindValue();, а при выводе экранируем < > & символы. всё!

но потом начинается. ах нам же нужна регистрация пользователей, «так-так-так, что тут у нас, Session fixation ахаха.», а боты-спамеры нам форум засрали — надо ещё сделать капчу, и CSRF не забыть, и антифлуд заодно прикрутить! и пошло поехало, новые костыли рождают всё новые проблемы. но весь веб по прежнему остаётся держаться на операциях чтении и записи. вот так всё просто, на самом деле. но даже в таких простых вещах люди наступают на грабли.

просто попробуйте, чтобы убедиться в этом самостоятельно.

код, который я пишу. в нём нет красоты, его называют «быдлокодом». потому что я не ставлю себе целью реализовать 100500 различных классов для работы с разными БД и последующей возможности вывода в различных форматах в разные места и так далее. моя цель — проста как весь веб: чтение и запись. и я отталкиваюсь исходя из двух этих низкуровневых операций, а не пложу новые сущности, которыми сам лично никогда не воспользуюсь. поэтому тупо: bindValue(':text', $_POST['text']); и htmlspecialchars($text);, да.

те, кто пишут форумы phpbb, smf, и прочая.. они их пишут уже больше десяти лет. это я за неделю на коленке написал бложек. а потом случайно удалил index.php и написал его с нуля за день. но те чуваки, хочется думать, имеют огромный опыт и знают все подводные камни. знаете откуда там критические уязвимости?

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

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

а вот на таких форумах и ирк — совсем другой контингент.

последние полгода активизировались старые ирк-связанные проекты, анрил 4 практически полностью переписан, какие там закладки (специально или нечаянно) появились - хрен его знает. еггдроп вдруг стали пилить. вдруг! может, АНБ кому-то отсыпало денег? типа, ребята, давайте активизируйтесь.

подумайте над этим.

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

код, который я пишу. в нём нет красоты, его называют «быдлокодом». потому что я не ставлю себе целью реализовать 100500 различных классов

Нет, дурачок, его называют говнокодом потому что это говно, а не код

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

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

ты не поверишь, весь софт на этом держится

в таких простых вещах люди наступают на грабли

везде так, вообще, в любой области есть свои подводные камни о которых со стороны не известно и даже представить не мог что есть и такое

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

Лан, ты был раньше просто опущенцом. Так вместо того что бы учиться ты решил, что делаешь всё правильно. И форсишь тот кусок блевоты, что ты называешь кодом на php.

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

а вот на таких форумах и ирк — совсем другой контингент

и этот контингент давным-давно бы твой говнокод поимел, если бы не твой статус Неуловимого Джо. хотя после твоей идиотской бравады тут - я бы на твоем месте прикрыл анус табуреткой, каникулы длинные

anonymous
()

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

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

Что именно вы советуете?; из вашего потока мыслей не удалось получить хоть какое-то к-во рациональных зерен.

kep
() автор топика
Ответ на: комментарий от anonymous

discourse

он указан в стартовом посте.

kep
() автор топика
Ответ на: комментарий от KRoN73

открыл твой профиль - ты здесь уже 16 лет оО

помнишь наиболее знатные времена лора?

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

Товарищ!

Вместо того чтоб лепить говнокод — бери гаечный ключ да иди на завод!

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

Гаечный ключ купи, пригодится.

это была попытка намекнуть, что я в жизни, кроме как генту компилять — ничего не умею? :}

Nice try.

kep
() автор топика
Ответ на: комментарий от anonymous

Люблю писать лапшекод, его легко читать — ты сразу видишь, что код выполняет, и как его автору, мне по нему легко перемещаться, ибо зная код, через Ctrl + F можно быстро отыскать нужный участок. Но говорят, что код — какашка. Так вот, оправдываюсь.

Никто не любит «плоский код», все хотят видеть высший пилотаж на «самопрограммируемых» классах. Окей.

Два абсолютно одинаковых кусочка кода.

<?php
$user = create_user("name", "email@example.com");
add_user_metadata($user, "source", "website");
save_user($user);

send_user_email($user, format_user_email_message("welcome", $user));
log_user_event($user, "sent welcome message");
<?php
$user = new User("name", "email@example.com");
$user->metadata["source"] = "website";
$user->save();

$user->send_email($user->format_email_message("welcome"));
$user->log_event("sent welcome message");

Разницы между ними никакой нет и всё зависит сугубо от возможностей ЯП и желания программиста писать с использованием процедур (поправьте если ошибаюсь, код с использованием функций называют «процедурным программированием»?) или же использовать ООП и писать классы.

В обоих случаях мы представляем каждый элемент сайта, каждый элемент приложения как объект: «пользователь», «комментарий» и т.д. и к ним уже описываем свойства, которые они выполняют: «создание нового пользователя», «запись комментария в БД» и так далее.

Необходимость писать с использованием ООП возникает лишь при разработке проекта несколькими человеками. Вместо того, чтобы описывать тонны заметок и документации на тему «что ты хотел этим сказать», «как это должно работать», ты просто создаёшь по сути новое API для управления целыми блоками: addUser, addPost, addComment. И другим разработчикам всегда понятно из одного короткого слова, что выполняет «addComment», — не нужно каждый раз вчитываться в портянку кода написанного другим разработчиком, пытаясь разобрать в деталях, что же код выполняет.

Нет никакого труда, кроме лишней траты времени на придумывание названий собственным функциям и классам, и их методам (цэ перфекцонизм).

Хорошо, будь по-вашему, свой новый проект я уже начал писать с использованием классов, чтобы в будущем, копипастить на ЛОР целые классы, вместо портянок лапшекода, который вы называете какашкой — ибо так удобнее его понимать, ведь цель лишь показать «что должен делать код», отвечая на вопросы ЛОРовцев. Только в таком случае одним классом дело не обойдётся, придётся копипастить вообще всё, потому что из одних классов вызываются другие. А лапшекод удобно наглядно показывать, описывать конкретну ту логику, которую запросит ТС.

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

все хотят видеть высший пилотаж на «самопрограммируемых» классах.
самопрограммируемых

WTF?

Необходимость писать с использованием ООП возникает лишь при разработке проекта несколькими человеками.

Нет. Всё не так.

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

Уймись, школьник.

чтобы в будущем, копипастить на ЛОР целые классы

И избавь нас от своей тупости. Твой код никому не нужен.

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

WTF?

подразумеваю всякие финты вроде __set и __get

Уймись, школьник.

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

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

критику без аргументов

Всё, что ты написал — феерический тупняк. Особенно вот это:

новый проект я уже начал писать с использованием классов

Представлять этот проект на конкурсе «Интелектуалы Среднего Урала», после которого он обретёт успех ©, ты ещё не собираешься? И каких аргументов ты ждёшь после этого?

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

https://github.com/spfng/SPFNG.COM/blob/master/includes/session.class.php

вот, написал свой первый класс.

require 'includes/session.class.php';
new Session();

при наличии сессионной куки проверяет её на угон (таймштамп у протухшей куки), защищает от Session fixation — перегенерирует при _каждом_ запросе, ну и сверяет ip-адрес и юзер-агент. в случае, если хоть одна из проверок не прошла — просто уничтожает сессию.

по мере написания и развития собственного движка буду выкладывать новые файлики проекта. отслеживайте, если вам интересно. =)

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

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

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

Разницы между ними никакой нет и всё зависит сугубо от возможностей ЯП
разница есть, и она тоже зависит от ЯП, как раз. Даже твой примитивный пример на нормальном ООП-языке можно было бы написать гораздо удобней, что-то в таком роде

new User do(
  byName("name", "email@example.com").
  metadata["source"] = "website";
  save
  send_email withFormat("welcome") log
 )

Но твой код простой, а если бы там была сложная логика с асинхронностью? Ты бы в такое дерьмо попал со своим процедурным стилем, что сам свой код не прочитал бы на следующий день. Глянь на исходники серверного NodeJS, увидишь к чему это все приводит.

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

вот, написал свой первый класс.

А теперь объясни пожалуйста, на кой чёрт тебе там класс? Класс ради класса?

Алсо, форматирование капец. Да и вообще, почитай на досуге: http://www.phptherightway.com/

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

Движок ЛОРа, не? И не на PHP

Хз как оно в плане безопасности, но в плане удобства для пользователя — УГ.

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

У phpBB есть проблема со спам-ботами

Это если руки кривые. Эта проблема решается даже стандартными методами в форумной админке.

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

Recaptcha версии 2 .

Recaptcha второй версии, где чекбокс я не робот - реально помогает от автоматического спама.

Maddock
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.