Аналитика Telegram-канала
Подписчики
174
Охват за 24 ч
11
ER за 24 ч
6,32%
Публикаций
77

Динамика подписчиков

7 дней 30 дней 6 месяцев Больше
25 окт28 окт31 окт
Показаны последние 7 дней Больше истории →

Охваты публикаций

02.1006.1014.1014.1030.10
9
Средний охват
11
Лучший результат
Показаны 5 публикаций — последние в канале Больше статистики →

Упоминания

4
Упоминаний
2
Из них репостов
3
Каналов
Сергей Предводителев 30 сен · охват 624
Все упоминания

Последние посты

3 из 77 2 из 77
Отшумели летние дожди новости про уязвимости php. Осталось выяснить, а что со всем этим делать. Ну понятно, что обновиться, там где можно. А где нельзя? Вот у меня тут 15летнее легаси. Называется Drupal 6. Официально работает на php 5.6. И оно бы у нас так и работало, но с технологиями прошлого десятилетия всегда то нога разуется, то пизда раздуется. То pecl отвалится, то еще кака хуйня. Года 2 назад перестал работать драйвер с новой версией mysql. В итоге,был сделан прорывной скачок, и после применения неофициального патча, версию подняли до 7.2. Так бы оно все и работало, если бы не события прошлой недели. Можно конечно забить, и надеяться на лучшее. Но ощущение, что это не последние уязвимости, и дальше лучше не будет. А в случае взлома, напихают мне🍆 Можно подумать, что раз у меня уже друпал 6, то там и так дыра на дыре. И для меня эти уязвимости, это как извержение вулкана на залупе таракана. И даже если их пофиксить, то дырявый друпал никуда не денется. но-но! попрошу! сам фронтенд друпала уже давно скрыт за семью печатями, и доступен только из интра сети. А наружу торчат только отдельные ендпоинты, логика которых зиждется на куче кастомного легаси. От друпала там только ядро и ебучая структура данных. Короче говоря, было сделано если и не все, то очень многое, чтоб этого покойника оживить. Поэтому было принято волевое решение попробовать таки заставить это все поработать на 8.2. Скажем, года 2 назад я бы ни за что не взялся за такую задачу. Но раз ИИ эту кашу всю заварил, то можно его поиспользовать и в благих целях. У нас есть: Claude Opus 5.5 Конечно же Rector И довольно приличный набор e2e тестов (вот это вообще ключевое) Первым делом я попросил клод сгенерить набор рулзов ректора для апгрейда с 7.2 на 8.2. Не сразу все получилось правильно, но в итоге получилось вот так. И я в который раз хочу отметить охуенность тулинга в пыхе. То, что rector существует – это просто гейм ченджер. Трудно представить, сколько бы возился агент с такой задачей, если просто работал с кодом. А тут он работает на другом уровне, на уровне правил ректора. Но и без клода я бы честно заебся собирать правила вот здесь. Хотя выглядит в целом реальным. Конечно же нихуя не заработало просто так. Выяснилось, что парсер phpstan (именно он используется под капотом ректора) ломается на некотором коде на свежей версии пхп. В частности подзаебали фигурные скобки вместо квадратных, как способ доступа к элементам строк и массивов. Надо было либо прогонять на старой версии, либо сначала отдельно фиксить это. Также процесс пришлось разделить на сам друпал с кастомным кодом, и отдельно на обновление third-party билиотек, которые лежали также в репе, и в которых было стоооолько говна, что даже друпал кажется свежатиной. Например порадовала билиотека PHPExcel (2012 год). Там просто best practices php 4 💪️️️️️️ Ректор конечно же не решил все проблемы. В частности api пыхи в некоторых местах поменялось так, что все падало сразу. Конкретные примеры: error handler (который в set_error_handler) больше не принимает 5-й аргумент колбэки для управления сессиями ождают результаты конкретного типа (чаще всего бул) Иногда оно сразу не падало, но явно требовало вмешательства. Например, это касалось новых уровней ошибок и изменения в поведении error suppression (оператор @). Ну и конечно после того, когда все запустилось формально, код от этого не стал типобезопасным. Он остался таким же говяным. Просто кучу ошибок приготовились ловить в рантайме. И когда запустили тесты, то упало все, что только могло упасть. Личный топ рантаймовых фаталок: обращение к свойству null обращение к элементу массива, когда там нет массива конвертация массива в с троку (раньше получали слово Array, и никто из пользователей не жаловался) аргументы implode в неправильном порядке array_key_exists на объекте И многое-многое другое! После изменений просил клод отревьюить код. И он реально помогал находить корнер кейсы. Тут как ни крути, а агент могет. Но даже это не всегда помогало. Вот вам конкретный пример. Был такой код в фукции валидации формы if ($elements['#required'] && (!count($elements['#value']) || (is_string($elements['#value']) && strlen(trim($elements['#value'])) == 0))) { form_error(); } При прокликивании в админке все упало с ошибкой про вызов count на не Countable|array. Ну понятно, пытаемся посчитать то, что считать нельзя. Недолго думая, меняю !count($elements['#value'] на empty($elements['#value']). Клод справедливо замечает на ревью, что здесь ошибка. Ведь empty вернет true для строки '0' (блять охуеть конечно это говно!!!😡️️️️️️). И предлагает фикс is_array($elements['#value']) && empty($elements['#value']). И тут уже наступает мой черед нанести удар клоду по самолюбию, ведь тогда проверка пропустит null. В итоге сошлись на if ($elements['#required'] && (!isset($elements['#value']) || (is_array($elements['#value']) && empty($elements['#value'])) || (is_string($elements['#value']) && strlen(trim($elements['#value'])) == 0))) { form_error(); } Кароче, это ахуительный был атракцион! 🎪 Я никогда еще не вписывался в подобный блудняк. Сейчас конец недели, и я чувствую себя примерно так Вот так я себя чувствую. Все тесты проходят. Но впереди еще много работы и куча ручного тестирования. Однако похоже основное тестирование будет на проде! Ссыкотно писос.
ещё
11 0 2 1 30 окт, 17:01
4
ещё
1 0 14 окт, 11:26
Фото
рандомный коммент на ютубе, и я горю сракой😡️️️️️️даже дизлайк ебанул, вот на столько выбесился
ещё
9 0 1 14 окт, 11:03
Больше постов

Продолжить анализ этого канала

  • История роста подписчиков
  • Просмотры и охваты публикаций
  • Кто упоминает канал и кого упоминает он
  • Похожие каналы и подбор для рекламы
Открыть аналитику
Демо до 14 дней