Flat |
Отправлено: 27 февраля 2019 — 06:19 • Тема: EXBB gold edition • Форум: Обсуждаем |
Ответов: 87 Просмотров: 0
|
NordWest пишет:Что то мне не сильно нравится этот код в плане безопасности. Может конечно и ошибаюсь, но похоже на дыру для SQL инжекции.
В смысле модулей, которые используют sqlite? Вполне возможно. Я вообще против пихания в чисто файловый движок каких-либо sql, sqlite и прочих баз данных. Это не наш путь, от слова совсем. Мы идём чисто файловым путём, а все те, кто вам будет говорить об обратном либо по хорошему ошибаются, либо лукавят. Вменяемых файловых движков и так кто наплакал..
Что касается данного случая, то тут видимо придётся ещё проверять сессионые переменные и константу IS_ADMIN. У меня, сейчас честно говоря голова занята конкретно своим проектом, да и приболел, поэтому не хочу тратить время на другое. Если буду растрачивать себя то ничего не выйдет..
Программирование очень серьёзная тема, тестирование ещё серьёзней и время-затратней. Тут надо быть полностью сосредоточенным на одном.
Что касается дела, то переписал авторизацию, надеюсь, что окончательно. К тому же сейчас делаю подсчёт онлайн посетителей, и посетителей за сутки. Сейчас число посетителей за день одномоментно сбрасывается, что на мой свежий взгляд несколько не верно. Делаю так, что будет проверятся время по каждому посетителю, в течение суток, и сбрасываться будет каждый отдельный посетитель при исчерпании времени. В этом случае, юзер, который зашёл на сайт во время сброса списка, не увидит пустое поле числа пос. за день, а увидит число пос. которые уже были здесь в течении прошедших часов.
Также будет учтены "свежие" или "старые" гости, то есть уникальные гости. Подсчитываться будут только уникальные гости, это чтобы небыло накрутки гостей. Статистика буде более полно отражать существующую картину посещений. Сейчас этого нет. Есть только разделение гостей на ботов и не ботов. |
Flat |
Отправлено: 26 февраля 2019 — 02:56 • Тема: EXBB gold edition • Форум: Обсуждаем |
Ответов: 87 Просмотров: 0
|
Yamaliya , я почему молчу.. Я ещё в первый день протестил. В файле fm.class.php в функции _Authorization() нужно за комментировать строчки:
CODE:else {
header("Location: loginout.php?action=loginadmin");
exit;
}
В файлах: admincenter.php, а также в тех файлах, на которые ведут ссылки из админцентра, а их достаточно много если считать файлы модов, после строчки
CODE:include('./include/common.php');
$fm->_GetVars(TRUE);
Надо вставить
CODE:if($fm->user['id'] != 1)exit();
Я тестировал немного, вроде всё нормально. Однако дело в том, что в движке перемешано определение "админской сущности". Там и через константу IS_ADMIN определяется, и через user['id'], и через сессии... То есть нет единого механизма идентификации, что плохо. Почему так? Потому что над движком работали последовательно много людей. Один сделал вот так, а следующий добавил вот эдак, а третий наплевав на двух предыдущих сделал по своему, и всё это осталось и ужасно удивительно до сих пор работает, и неплохо.. А проблемы возникают тогда, когда мы хотим внести какие-то изменения. Представьте: один модуль определяет админа по сессиям, другой модуль по id, третий.. Ну вы поняли. Поэтому тут надо ДОЛГО тестировать чтобы случайно не вылезли косяки. Поэтому в сомнениях: а стоит ли вообще лезть в этот улей с пчёлами?.. |
Flat |
Отправлено: 26 февраля 2019 — 02:39 • Тема: Темы без категорий, форумов и подфорумов. • Форум: Общие вопросы |
Ответов: 34 Просмотров: 0
|
Без кардинального переделывания движка ничего не выйдет. тут так устроено, темы лежат в форумах, а форумы в категориях. Однако спасибо за идею для будущего.
Такого вообще-то нигде нет, насколько я в курсе. То есть не вижу смысла выводить темы вне категорий или форумов. Всё равно нужен какой-то блок, в котором эти темы будут содержаться. Естественно это и есть категории, в данном случае форумы.
Можно придумать нечто вроде "горячих тем" в под шапкой, на вроде чата. Но это так просто не сделаешь. |
Flat |
Отправлено: 23 февраля 2019 — 11:05 • Тема: EXBB gold edition • Форум: Обсуждаем |
Ответов: 87 Просмотров: 0
|
Yamaliya пишет:Вы можете изменить это в текущем движке? Буду благодарна
Посмотрю, что можно сделать.
tester пишет:скомпоноваться и сделать один реально хороший и современный движок? совместно, а? это будет лучше, чем ругаться во всех темах форума и доказывать у кого пиписька (извиняюсь) длиннее?
Дык, вот, непонятно к чему вообще стремится человек. К тому же в любом проекте должен быть всего один главный архитектор, иначе как в басне про лебедя, рака и щуку может выйти.. |
Flat |
Отправлено: 23 февраля 2019 — 11:00 • Тема: Давайте познакомимся! • Форум: О жизни |
Ответов: 133 Просмотров: 0
|
Yamaliya пишет:И не будь нашим димой айфоном )
Спасибо, Yamaliya , постараюсь. |
Flat |
Отправлено: 22 февраля 2019 — 04:58 • Тема: Давайте познакомимся! • Форум: О жизни |
Ответов: 133 Просмотров: 0
|
Parapsixolog пишет:приятно познакомиться!
Спасибо, Parapsixolog. |
Flat |
Отправлено: 22 февраля 2019 — 03:54 • Тема: EXBB gold edition • Форум: Обсуждаем |
Ответов: 87 Просмотров: 0
|
Sigurni пишет:Если бы вы это сделали, то увидели бы, что такой способ используется и в phpBB, и в IP.Board, и в XenForo (пруф в видео по ссылке)
Во-первых по ссылке ничего не ясно, так как н понятно авторизовался пользователь как админ или нет через основную форму. Там показана только форма входа(основная или специально для админа - не понятно).
Sigurni пишет:Если у админа украдут cookie, не важно каким способом (даже через физический доступ к его ПК), то дополнительная форма авторизации не даст злоумышленнику зайти в админку.
Согласен. Но в exbb сделано так, что админ когда авторизовался через форму входа в админцентр уже может прыгать между основным форумом и центром без подтверждения через форму входа в админцентр. И представьте что будет если злоумышленник похитит кукисы после авторизации: он будет иметь прямой доступ ко всем функциям. Я забыл сказать, что у меня так не будет. У меня будет подтверждение любого действия админа через ввод пароля в самом админцентре. Естественно опционально, но по умолчанию. Даже если юзер попадёт в админцентр он ничего там не сможет сделать. К тому же файл профиля админа имеет другое расположение полей логина и пароля, в этом случае злоумышленнику придётся каким-то образом изменить файл админа, что очень сложно.
Sigurni пишет:Почему вы в своих сообщениях поливаете грязью предыдущих разработчиков
А почему вы в каждом сообщении поливаете грязью меня? Так зрелые люди себя не ведут, по всей видимости вам 14 лет от роду.
Sigurni пишет:при этом у пользователей этого движка уже более 10 лет всё прекрасно работает, и этот форум наглядное тому доказательство?
Я ставил этот движок на реальный сервер, и после того, как начали вылезать многочисленные несостыковки, по типу: закрыл одну дверцу отвалились три остальных, пришлось снести его к ч..у. Понимаете: он выглядит достаточно пристойно чисто внешне, но под капотом такой бардак, что просто диву даёшся. Действительно писали студенты. Юрий был студент, он учился в то время. Первоначальный разраб тоже. Михайлицину, который сделал несколько модов, вообще на то время было 14 лет. Это были начинающие программировать люди. Я просто сказал правду. Вам она не нравится? Так это ваши проблемы: чего же вы опять лезете сюда? Проходите мимо этой темы. Зачем троллить?
Что касается кода, то что показывать? Там только регистрация налажена. Видите ли я пошёл по пути полной переписки кода, так как видимо иначе не могу: этот бардак надо исправлять. Сейчас уже ядро практически готово. Авторизацию вчера почти доделал. Будет новый скин. Вменяемая система файлов языков. Работа в админцентре будет по другому, примерно как в PanBB.
Вам нужен код чтобы в очередной раз его высмеять? Так и над кодом Линуса Торвальдса тоже смеются, однако он работает в линуксах у многих причём с успехом. Там вы тоже не найдёте своего любимого ооп.. Нет уж: когда будет рабочая вещь, тогда и выложу. Возможно даже, что надо будет делать отдельный форум поддержки, так как рождается совершенно новый движок, а тут кроме насмешек ничего не будет.. |
Flat |
Отправлено: 21 февраля 2019 — 11:18 • Тема: Давайте познакомимся! • Форум: О жизни |
Ответов: 133 Просмотров: 0
|
Привет!
Мне 47 лет. Настоящее имя Дмитрий. Выгляжу и чувствую моложе. Стараюсь вести здоровый образ жизни(по Брэггу), хотя не всегда получается.
В молодости был повенчан на книгах, а сейчас на компьютерах.
В жизни важнее поиски духовности, духовного смысла жизни. Перепробовал многие духовные практики, был поклонником Буддизма, Кришнаизма, Теософии, Антропософии, Йоги и пр. софий. В конце концов пришёл к православию и успокоился..
Политические предпочтения: убеждённый монархист. Считаю, что Россия без Царя, что телега без лошади.. Время покажет, что я был прав!.
За Ельцина не голосовал, за Путена не голосовал, Горбачёва считаю предателем.
Любимые авторы художественной литературы: Достоевский, Гюго. Прочёл практически всю русскую литературу.
В молодости привлекался, но не сидел. Ничего серьёзного.
Однажды мне проткнули ножём руку насквозь. Целились в сердце. Много крови потерял. Валялся больше месяца в больнице. Обидчик сел(это была его 7 ходка, весь в наколках с ног до головы).
По пьянке был бит. Лицо было чёрное. Заявление не подавал, так как сам виноват. Не надо было пить. Давно уже с этим делом в завязке. И другим не советую этим заниматься.
Сексуальные предпочтения: инертные, особые. Ничего особенного и плохого. Практикую воздержание.
Женат не был. К женщинам отношусь индифферентно, как и к мужчинам, впрочем тоже. В жизни было всякое.. Хотя Женщину боготворю, как украшение вселенной.. Но... не могу..)))
Я женат на Другой...
Увлекаюсь программированием и комп-технологиями, хотя это дело сродни наркотику, поэтому иногда меня настораживает..
Любимые языки программирования: Си.
Рабочий комп: 2 ядра старый, программирую на win xp. Лучшая ось для программинга. Есть ноут с windows 10. |
Flat |
Отправлено: 21 февраля 2019 — 07:34 • Тема: EXBB gold edition • Форум: Обсуждаем |
Ответов: 87 Просмотров: 0
|
1Bot пишет:Отдельная авторизация в админ-центре из-за того что доступ на основной форум можно закрыть (и соответственно доступ к основной форме авторизации будет недоступен).
Он будет недоступен, если после отключения форумов, админ выйдет с форума. Если админ не выйдет, то все функции по прежнему доступны для админа. Кстати, такое однажды у меня было, но на другом движке. Неприятная ситуация, прямо скажем. Но ведь решаема? В этом случае по прежнему доступна ссылка на основной вход на форум и авторизация админа проходит успешно. Не вижу здесь какой-то проблемы. |
Flat |
Отправлено: 21 февраля 2019 — 06:57 • Тема: EXBB gold edition • Форум: Обсуждаем |
Ответов: 87 Просмотров: 0
|
Изменена концепция входа администратора в админцентр. Вопрос на засыпку: зачем существует функция повторного залогинивания админа при входе в админ центр? Мне действительно интересно. Насколько я знаю нигде такого нет.. По вашему мнению это повышает безопасность скрипта? .
Давайте подумаем: админ уже авторизован на форуме. Теперь ему показывается ссылка на админцентр. При переходе ему показывается форма входа в админ центр. Зачем??? Это просто дубляж функции залогинивания. Админ и так уже авторизовался! Зачем ещё раз? Чтобы войти в админ центр? Так и каждый гость знакомый с кодом будет знать ссылку в админцентр!!! И сейчас именно так и есть! Понятно что делали студенты первокурсники, это по коду сплошь видно и понятно. Я тоже бывает косячу.. Убрал этот ненужный дубляж. В админ центр и так никто кроме админа не пройдёт: хоть триста раз авторизуйся это безопасность ни на йоту не повысит, друзья.. |
Flat |
Отправлено: 19 февраля 2019 — 07:33 • Тема: EXBB gold edition • Форум: Обсуждаем |
Ответов: 87 Просмотров: 0
|
Полностью переписал регистрацию. Изменил логику активации аккаунта по ключу. Изменил концепцию сохранения информации о пользователе. Переписал функции по работе с файлами. Вся работа теперь идёт через одну функцию, которая вызывает подсобные, с прицелом на будущую конвертацию на мускул если кому нужно будет. Много новых функций, и много функций переписано заново. Разговор это длинный, но вкратце скажу следущее.
Касаемо пользователей.
Теперь не будет номеров пользователей, а индетификация происходит только по логину. В этом случае не нужно вести поддержку сразу двух уникальных сущностей: логина и номера. Логин и так уникален, а так как база у нас файловая нет нужды в номерах пользователей, это как в YaBB сделано. Русские логины транслитируются (функция транслита новая). При регистрации создаётся не файл пользователя, а папка пользователя. Эти папки пользователей распределяются по отдельным ппапкам, по алфавитному принципу: например папка пользователя под ником admin называется member_admin/, эта папка лежит в папке под именем members_a. Папка участника под ником georgy называется member_georgy/, и лежит она в в папке members_g/. Это позволяет распределить пользователей, чтобы не было тормозов из-за большого количества файлов в одной директории. Уже на 5000 файлов файловые системы начинают тормозить.
Новая функция удаления директорий со всем содержимым.
В пользовательской папке находятся файлы: profile.php, stats.php, posts.php, avatar.gif(расширение может быть другое), messages.php и папка uploads/ если у пользователя есть загрузки.
Теперь все пользовательские данные собраны в одном единственном месте, что намного упрощает программирование и поддержку движка, упрощает сам движок.
В файле posts.php находятся записи с инфо о местонахождении каждого сообщения пользователя примерно в таком виде:
4|6|1|34
что означает: сообщение лежит в категории под номером 4, в форуме с номером 6, в теме 1, сообщение номер 34.
Записи лежат в порядке их добавления пользователем. При этом очень легко находить сообщения пользователей по категориям, форумам и темам.
Такой формат много места не занимает.
Файл stats.php нужен чтобы разгрузить файл профиля. В этом файле инфо обновляется динмически, а в файле профиля лежат настройки пользователя, его пароль и логин. В этом случае мы не переписываем постоянно файл профиля, это для того чтобы не потерять случайно инфо о пользователе.
В куках пользователя лежит не хеш пароля, а токен. Этот же токен лежит в файле stats.php пользователя. Это для безопасности. Пароль шифруется не md5(), а sha1(). Введена соль для хэша.
Активация пароля по мылу сделана проще. Юзеру нужно ввести только ключ. При регистрации с активацией, в именах файлов вместо хэшей пишутся логины как и для всех остальных, в этом случае не нужно проверять файл tempusers на наличие логина.
Все модули подключаются через индексный файл через список модулей.
Короче говоря вся логика изменена. Надеюсь, что доведу это дело до логического конца. Мне всё нравится: я делаю так, как считаю нужным, чтобы движок, файловый движок работал именно так, как полагается, по уму. |
Flat |
Отправлено: 16 февраля 2019 — 09:23 • Тема: EXBB gold edition • Форум: Обсуждаем |
Ответов: 87 Просмотров: 0
|
1Bot пишет:Как Вы решаете вопрос с зависимыми модами?
Полностью независимый мод это плагин. Чтобы сделать полностью независимые моды, нужна кардинальная перестройка движка. К примеру, закрываем/открываем определенные разделы в зависимости от репутации пользователя. Мод создаёт файл со списком пользователей и их репутации. Чтобы добавить, допустим, вывод информации о репе в блоке сообщения под аватаркой, мод открывает файл со списком блоков, которые находятся в ячейке таблицы сообщений, и добавляет свой блок в нужном порядке(предварительно отсортировав список если нужно). Всё. Ничего не надо править руками. Но в таком случае нужно всё выводить через конфиг-файлы со списками блоков, допустим, на главной странице, в блоках менюшек, в телах сообщений, в блоке статистики и т.п. В админцентре тоже все менюшки делаются через конфиги, поэтому чтобы добавить какую-то новую кнопку, мы просто добавляем её в конфиг, а не в текст существующего модуля. Это концепция так называемого data-driven programming, то есть программирование, которое полностью зависит от структур данных, которые отображаются в долговременную память. Вот путь к независимым модам, а не контролёры и пр. ахинея.
Самое главное это не хранить информацию в скриптах. Вся логика должна быть собрана в конфигах. При этом любой модуль может что-то туда добавить, изменить или удалить, тем самым изменив логику работы всей системы. |
Flat |
Отправлено: 16 февраля 2019 — 04:21 • Тема: EXBB gold edition • Форум: Обсуждаем |
Ответов: 87 Просмотров: 0
|
Смотря как сделана. Часто надо выявить сумму принесённой форуму человеком пользы стем, чтобы предоставить ему какие-то привилегии. Естественно всё должно по уму быть сделано.
По делам текущим.
На данный момент работаю над подключением модулей к одной точке. Уже запускается регистрация, форма входа. По ходу хочется многое переделать.. |
Flat |
Отправлено: 14 февраля 2019 — 16:50 • Тема: EXBB gold edition • Форум: Обсуждаем |
Ответов: 87 Просмотров: 0
|
Parapsixolog пишет:Так как кроме выставления самих балов репы сохраняется причина её изменения, и всегда можно посмотреть, кто, сколько и за что поставил.
Если в результате пертурбаций произойдёт её обнуление, то мало кто захочет лезть на страницу репутации. Репа это по сути те же лайки и дизлайки. Так почему бы не сделать как и полагается? Пусть все видят сколько поставлено лайков и дизлайков.
Кстати ещё вырисовалась проблема: накрутка репы, как в положительную, так и в отрицательную сторону. Товарищ(тамбовский волк ему товарищ) Sigurni , уже второй раз за день! ставит мне отрицательную репу. Мне-то всё равно, но я ему тоже влепил за день два балла в отместку. Налицо война не на жизнь а на смерть, жаль видимо что далеко друг от друга находимся, а то намяли бы бока))) Ух какие мы грозные))) Но я ещё терпеливее..
А если серьёзно, то налицо ещё одна проблема - накрутка репы. Я у себя обязательно решу эту проблему, а вы даже не знаю как с этим живёте.. |
Flat |
Отправлено: 14 февраля 2019 — 07:24 • Тема: EXBB gold edition • Форум: Обсуждаем |
Ответов: 87 Просмотров: 0
|
По ходу пьесы ещё одно предложение нарисовалось..
По поводу репутации пользователя. Интересно, вчера пользователь Sigurni поставил мне отрицательную отметку. У меня было 7 баллов, стало 6 баллов. Мне-то это по барабану - пусть хоть минус тысяча будет, но дело в том, что при такой системе, получается что вычитая из положительных баллов отрицательные, мы тем самым своими руками отбираем те благодарности, которые были поставлены другими пользователями от чистого сердца. К примеру, было у меня 100 баллов репы, но вдруг было снято эти же 100 баллов отрицательными отметками. Получается, что репутации = 0, но положительные баллы вместе с комментами остались.. Не кажется ли вам, что это несколько несправедливо по отношению к тем, кто ставил положительные или отрицательные баллы?
Не лучше ли и справедливее сделать две суммы - одну положительных баллов, а другую отрицательных? В этом случае сразу будет видно сколько людей поставило положительную репу, а сколько отрицательную. Сейчас это вообще трудно уловимо. |
|