Александр Воробьев

Александр Воробьев
Рейтинг
67
Регистрация
03.02.2020
Sly32 #:
По итогу пользователь даже не доходит до ВП - ему отдается чистая статика - и об этом я говорил.
Даже если так что с того? Или ты рассматриваешь какие то очень узкие вопросы по отдельности, а не "подходит ли ВП конкретному проекту в целом"?
Sly32 #:
А так же о том что вы этом случае можно забыть про динамический сайт, любой нормальный интерактив с пользователем. Решение для инфо, контентников а не для сервисов
Не совсем так. При осмысленном подходе не все ж так "прямолинейно". У нас же не только черное/белое.
У меня уже несколько лет только одна иконка - корзина. 
все как всегда: Кто умеет тот делает, кто не умеет - учит других.  (Конечно это не про профессиональных педагогов) :)
estic #:
Я сразу отбрасываю фреймворки, в которых она активно используется. 😊
По мне так тут все опять про баланс "удобно" или "максимально быстро" (ну и прочее в том же духе). По сути рефлексия не такая уж тяжелая штрука. У меня был проект где помогла бы рефлексия. приходилось либо связывать (а потом при эволюции проекта больше работы), либо много строк дополнительных писать, либо заранее много создавать на всякий случай.... В общем понятно, что методы есть разные как обойтись, но там пожалуй я бы применил. На остальные проекты примерял (так же в части именно своего кода) - где то вовсе не нужно, где то профит 50/50...
estic #:
Вы, правда, без "автовайринга" (рефлексии) уже ничего не пишете?

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

В случае фреймворка - тут как раз "подзадача" самому покрутить рефлексию.  Набраться с ней опыта и "попримерять" ее на свои задачи :)

Юлия #:
А кто-нибудь смотрит сериал "Тайны следствия"? У него тьма сезонов. Есть свои фанаты. Если так долго снимают, может дельный продукт?

Я смотрел (ему ж уж сколько лет то).. Но оговорюсь сразу: для меня сериалы это отдых после рабочего дня, т.е. вот такой формат непринужденный, без чернухи, вполне себе подходит. Можно охарактеризовать: если б можно было бы развидеть, то посмотрел бы с удовольствием вновь.  Единственное там в хорошем качестве наверно нет даже. Стало напрягать качество :)

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

ArbNet #:
всё банально по методичкам..

Это, кстати, я могу аргументировать:

1. Любой человек в любой области накапливает опыт. В этом накопленном опыте ему что то нравится, что то нет и так далее. Переходя к разработке фреймоворков: вполне естественно, что имея за плечами опыт разработки в не учебных/академических проектах накапливаешь опыт: какие решения, идеи хорошие и удобные, какие нет. Соотвтственно и свое решение строишь с учетом опыта. Берешь на вооружение хорошее и удобное (и этом может быть алгоритмы, идеи, интерфейсы взаимодействия, те же стандарты, PSR и прочее и прочее) - делаешь свою реализацию, а что показалось плохим и не удобным переделываешь. Если опыта нет (особенно даже если учебного) - то тут будет все по максимуму свое. Но у меня нет цели делать из принципа "главное, чтоб не было похоже на что то существующее" (считаю такой принцип не разумным). по этому да у меня есть решения которые похожи на типовые.

2. Фреймоворк должен быть привычным. Особенно в той парадигме в которой задумал я: он должен подходить для максимального числа проектов (в т.ч. и для чайников - через создание на его базе конструктора сайтов или MCP сервера, помогающего чайнику объяснить словами свои хотелки ИИ, а тот ему сгенерит).    А если расчет и на разработчиков глупо их полностью переучивать. Фреймворк должен помогать выполнять основную задачу, а не загружать мозг дополнительными навыками.  При чем если делать исходя "главное чтоб не как у всех" придется и самому полностью переучиваться, а это не имеет смысла в тех моментах которые считаешь правильными.

ArbNet #:

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

ЗЫ. Эксперимент с обезьянками помнишь, я лично его почти всегда в такие моменты вспоминаю.

У меня есть более важные задачи для размышлений. В данном же случае ты хоть и очень активно "агитируешь" за одну из позиций не привел ни одного веского аргумента. Повторюсь: мы конечно можем обсудить и это, но предлагаю тогда в отдельную тему, если тебе интересен аргументированное обсуждение, а здесь лучше сосредоточиться на коде и решениях.
master32 #:
LFI/path traversal через includeFile() / compileFile() : путь к шаблону никак не ограничен корнем шаблонов и читается напрямую через file_get_contents() .

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

master32 #:
RCE через “обычный текст” шаблона: TextNodeHandler возвращает сырой текст без экранирования/нейтрализации PHP-тегов, а кэш затем исполняется через include .

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

master32 #:
Расхождение compile vs render на отсутствующих ключах: compiled-mode генерирует прямой доступ вида $context['user']['name'] , тогда как render-mode идёт через resolveValue(..., $default) ; это ломает предсказуемость и приводит к предупреждениям PHP на пустых данных.

Пасиб. подумаю.

master32 #:
Потеря внешних локальных переменных в вложенных foreach при компиляции: внутренний цикл затирает список localVars , из-за чего обращения к переменным внешнего цикла компилируются уже как $context[...] .

Тут идея такая то все же localVars это переменные блока. тоже еще у меня нет 100% видения как правильно. Вероятно уже по обкатаю на том же проекте форума - может что пойму для себя. :)

master32 #:
Короткая рекомендация: вынести общий helper safe-access и использовать его и в compiled-mode, и в render-mode. Иначе библиотека остаётся непредсказуемой: один и тот же шаблон на тех же данных ведёт себя по-разному в двух режимах.

Интересно. подумаю

master32 #:
{% csrf %} не вставляет отправляемое поле формы и даёт ложную семантику безопасности.
Docblock обещает “генерацию скрытого поля или вывод токена”, но реализация compile() и render() фактически возвращает только строку токена: в compiled path делается echo $tokenManager->getServerToken($request);, а в render path возвращается сам токен. Браузер не отправляет “просто текст” из <form> как form field, поэтому такой API легко использовать неправильно и остаться без реальной CSRF-защиты.

Тут из собственного опыта. На самом деле надо и так и так. Скорее всего будет добавлена директива типа csrf-input.

master32 #:
Короткая рекомендация: заменить “много strpos на каждом шаге” на линейный сканер или единый regex/token automaton. Это не security issue, но для engine-level кода уже заметная structural cost.

Да. TODO там не спроста :)  обязательно этот вопрос будет изучаться.

master32 #:
покрытия на самые опасные сценарии этого аудита: literal <?php ... ?> внутри text node, path traversal через template path, parity compiled/render на отсутствующих ключах и parity nested-foreach по внешним локальным переменным

Об этом, если честно, даже не подумал...

Всего: 1084