«Обсидиант: Ростки в бетоне». Часть 4: Цифровое харакири Россельхозбанка, или 12 часов в очереди к Оксане
На связи снова КиберДед из Давлеканово. Пока вы там в своих нерезиновых коворкингах дуете лавандовый раф за полмиллиона в месяц, жуете безглютеновую траву и на созвонах протираете штаны, дед на уральской пасеке взял в руки каленый цифровой фумигатор. Потому что то, обо что я сегодня споткнулся в отечественном финтехе, заслуживает не просто статьи, а показательной порки на лобном месте за счет бюджетов на «цифровую трансформацию».Сюжет простой: продал дед знатный урожай свежего липового медка. Деньги реальные, пахнут воском, солнцем и честным крестьянским горбом. Решил не прятать их в трехлитровую банку под погреб, а пустить в дело, положить «развернуть» — открыть онлайн классический «Свой вклад» в Россельхозбанке. Сумма под расчет, копейка в копейку — 34 010 рублей. Сижу, пчелиный воск топлю, жму кнопку подтверждения. И... приехали! Эта копеечная трехкликовая операция превратилась в 12 часов кровавого, непрерывного штурма забагованного интерфейса!Когда этот кривой сайт в сотый раз выплюнул мне в лицо красную плашку с бредом «Сумма вклада должна быть не меньше значения неснижаемого остатка», я понял, что взывать к разуму поддержки — это как пчел против меда агитировать. Дед отложил стамеску, хрустнул пальцами, нажал заветную клавишу F12 и залез со своим инженерным ломом прямо в консоль браузера. И тут, товарищи, перед моим взором обнажился такой позор бэкенда, от которого даже дождевые червяки на моей пасеке покраснели бы за коллег.Уровень мыслительной активности тамошних ИТ-архитекторов залег где-то на ярусах глубоких, темных мышиных нор, глубоко ниже плинтуса. Наш червяк хотя бы ползет вперед к свету, а местный серверный код годами ходит по кругу впотьмах, путая теплое с мягким. У давлекановских клопов в этот момент наступил полный когнитивный диссонанс, они напрочь перестали кусаться, а местные комары от этого зрелища коллективно сделали себе обрезание носа, чтобы случайно не вдохнуть пары этой софтверной шизофрении!Давайте размажем логи их консоли прямо по их сытым глянцевым физиономиям! Показываю скелет пятилетней профнепригодности, которую эти гении ИТ-индустрии не могут вылечить с 2021 года.
Улика №1:
Хронический паралич фронтенда (windowing.js:1194)В самом верху консоли горит ярким пламенем критический красный крест:Uncaught TypeError: Cannot read properties of undefined (reading 'style') at windowing.js:1194Ребята, вы там в своем банке вообще код тестируете перед релизом или сразу в продакшен на авось выкатываете? Какие у вас там «синьоры»? Судя по качеству этого кода, их набрали на Киевском или Курском вокзале, на каких-то задворках у помойки, пообещав ящик пива за написание банковского фронтенда!Ваши привокзальные гении в коде файла windowing.js на строке 1194 пытаются прочитать свойство style у элемента, которого на странице физически не существует (undefined)! Скрипт ловит паническую атаку, падает в бесконечный конвульсивный цикл и намертво блокирует всю дальнейшую логику страницы. Зеленая кнопка «Открыть вклад» превращается в мертвую картинку, которая не посылает на сервер вообще ничего. Это чистый, незамутненный софтверный тупик, который висит в их ДБО с 2021 года. Они пять лет не могут нанять даже самого зеленого стажера за бутылку водки, чтобы тот просто прописал одну строчку кода и банальную проверку if (element) перед чтением стилей! Чекушку пожалели, а банк лежит в коме полдекады!
Улика №2:
Банк, запертый в песочнице (Sandbox без мозгов)Но это были еще цветочки. Чуть ниже браузер выдает контрольный выстрел в голову всему вашему многомиллиардному ИТ-департаменту:Blocked script execution in 'about:blank' because the document's frame is sandboxed and the 'allow-scripts' permission is not set.Вот тут дед окончательно выпал в осадок. Архитекторы Россельхозбанка умудрились засунуть форму подтверждения операции внутрь невидимого изолированного фрейма (iframe), но при этом забыли прописать ему базовое разрешение на выполнение скриптов (allow-scripts)!Браузер видит эту песочницу без прав, крутит пальцем у виска и намертво блокирует внутренний код самого банка. Банк заизолировал сам себя от собственного сервера! Вы можете кликать по этой кнопке хоть до следующего пришествия — сигнал дальше вашего монитора физически не улетит, потому что код заблокирован безопасностью самого браузера из-за феноменальной, эталонной тупости разработчиков.А на десерт — оператор Оксана в чате поддержки, которая уже 12 часов «готовит ответ» и технично переключает меня на виртуального робота, пока дед разматывает их код в прямом эфире. 12 часов в очереди к Оксане, которая сама, бедная, ждет, пока вокзальные синьоры протрезвеют. Забавно видеть, как AdBlocker параллельно рубит их внутреннюю аналитику с ошибкой net::ERR_BLOCKED_BY_ADBLOCKER, потому что они умудрились повесить трекеры банка на забаненные рекламные домены. Чистый, законченный цирк!
Вместо вывода
Мне не просто стыдно, мне дико за уровень цифровых сервисов государственного банка, где клиенты вынуждены сидеть с открытой консолью браузера и полсуток биться лбом о кривые фреймы, чтобы просто отдать банку свои деньги. Уважаемый ИТ-директор РСХБ, у меня к вам один финальный вопрос: на какие великие свершения вы спустили миллиарды народных денег? Чтобы дед на старости лет сидел с открытой консолью браузера и 12 часов выковыривал примитивный TypeError из кода, который ваши вокзальные «синьоры» написали за чекушку?