brevis
14.07.2021 - 11:08
https://generalscript.ru/page.php?page=../...../../etc/passwdP.S.
Master812, загугли аббревиатуру ГС/GS из ВМ/СЕО жаргона. "Как вы яхту назовете..."
_____________
Чатик в телеге
miketomlin
14.07.2021 - 13:04
Мдя...
Master812, возьми за основу хотя бы
G-Drive. Тоже Г, но в отличие от тебя его разрабы знают, что такое «белый список».
А когда работаешь с ФС напрямую, пробуй использовать путь, а не GET-параметр (есть шанс, что сервер тебе поможет защититься), realpath, basename и т.п.
P.S. Вот демка модуля, в котором я даю «прямой доступ» к файлам (без белого списка):
http://g09.ru/files (за пределы каталога files тут не выйдешь, как не старайся, даже если сервер не защитит).
miketomlin
14.07.2021 - 13:59
P.P.S. Для файлов пример не совсем корректный, т.к. запросы к ним сервер обрабатывает напрямую (без запуска движка). Но если бы мне нужна была в демке защита для файлов, она работала бы примерно так же, как работает для каталогов:
https://gency.ru/file-browser
Master812
14.07.2021 - 23:48
Ребят, вы хоть объясните, что не так в моём движке? А то все пишете ужас да жесть, а что конкретно не говорите... Инкуда слишком много может? Что устаревшего в моём подходе программирования? Расскажите, подробнее, плиз. Буду исправлять.
Ну а то, что я айякс не использую я и так знаю)
Valick
15.07.2021 - 01:04
Master812, ты про MVC, про PSR слышал?
_____________
Стимулятор ~yoomoney - 41001303250491
brevis
15.07.2021 - 01:21
Цитата (Master812 @ 14.07.2021 - 23:48) |
Ребят, вы хоть объясните, что не так в моём движке? А то все пишете ужас да жесть, а что конкретно не говорите... Инкуда слишком много может? Что устаревшего в моём подходе программирования? Расскажите, подробнее, плиз. Буду исправлять.
Ну а то, что я айякс не использую я и так знаю) |
Вижу ты добрый и честный парень, Лёха. И, раз уж ты пришел показывать свой движок на форум программистов, а не во Вконтактик, мы тоже будем с тобой честны. С нашей точки зрения, в твоём движке не так всё. И идея, и реализация. На форумах программистов, кстати, зачастую большее внимание уделяют реализации. В твоей реализации плохо всё. Как минимум беда с архитектурой, безопасностью, code-style, best-practice... Обо всём этом можно узнать из книг, статей, курсов, видосов.
P.S. Особенно с безопасностью
_____________
Чатик в телеге
Michael
15.07.2021 - 07:43
Цитата (Master812 @ 14.07.2021 - 21:48) |
Что устаревшего в моём подходе программирования? Расскажите, подробнее, плиз. Буду исправлять. |
У тебя нет никакого подхода.
То что ты написал - просто лапша.
Это даже не процедурное программирование.
Но раз это - все к чему ты пришел начиная с 2008-го, то как бы характеризует тебя как очень ленивого человека. И дело не в ajax, который ты не используешь, потому что лень было разобраться, а в сотнях таких же вещей, на которые ты забил.
Что то у тебя там получилось, просто по тому, что функционал, который ты выбрал реализовывать - предельно прост. Даже меню у тебя одноуровневые всего лишь.
_____________
There never was a struggle in the soul of a good man that was not hard
miketomlin
15.07.2021 - 08:38
Цитата (Master812 @ 14.07.2021 - 23:48) |
Ребят, вы хоть объясните, что не так в моём движке? |
А я типа не начал объяснять? Ну-ну.
«Лапша» – это еще не самое страшное. У тебя почти в каждой строчке здец. Например display_errors в коде должно быть булево или строкой вроде 'stderr' (не слышал, чтобы пых в коде, а не в конфиге, понимал On/Off; если On норм. приведется к булеву, то Off – уй). Куча инклудов для процедурки – это в общем-то норм., но, Мля, ты даже не представляешь, по какому витиеватому принципу работают используемые тобой относительные пути. За редким-редким случаем нужно использовать абс. пути, определенные через базу. И т.д., и т.п.
Про архитектуру, защиту, знание осн. принципов HTTP (например, что по GETу удаляют только чукчи, и я не о представителях чукотского народа) уже написали. Ты даже не понимаешь, что если ты не используешь сторонний фреймворк, то должен использовать свой.
miketomlin
15.07.2021 - 09:25
// коннект к БД
$connect = mysqli_connect($db['db_server'], $db['db_user'], $db['db_pass'], $db['db_name']);
mysqli_set_charset($connect, 'utf8');
– Обработка ошибок.
– Не, не слышал.
$data['posts'] = '<br>Ошибка чтения из базы данных! Не выбран id поста (новости)!';
include_once ('gs_engine/design/'.$design.'/blog.php'); // подключаем весь html-шаблон
echo $for_print; // выводим весь html-шаблон на печать с данными
– Статус 404.
– Не, не слышал.
Тебе точно once нужен при подключении шаблона? Как-то нелогично выводить отдельным echo, когда не видна буферизация в памяти. Или у тебя шаблон состоит из «конкатенаций» в $for_print? :)
Естественно, это не все. В пред. посте я прокомментировал начало показанного Валиком кода, а в этом – конец.
P.S. Про «белый список», статус 404, единую точку входа писал для новичков в этой теме:
http://phpforum.su/index.php?showtopic=94970
Цитата (Master812 @ 14.07.2021 - 23:48) |
Ребят, вы хоть объясните, что не так в моём движке? |
он морально устарел. Мертвый внутри.
_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.