Ілля Шкура
EN UK RU

Кейси · Перевірка застосунку

Портал для клієнтів, зібраний ШІ на Firebase: перевірений і виправлений

Зразок замовлення: портал і студії вигадані, дані тестові. Його зібрано в Claude Code для цього кейсу; кожна знахідка й виправлення — справжній прогін. Виправлений портал працює в мережі, його можна відкрити самому.

29проблем у порталі, який ШІ здав як готовий; найгірша давала клієнту читати приватні нотатки студії про нього; усі 5 високих виправлено

Відкрийте портал самі

Відкрити живий портал →

Виправлений портал працює на Firebase, сторінки на Cloudflare. Реєстрацію закрито, листи не надсилаються, тож увійдіть одним із чотирьох демо-входів; кожен веде туди, де працює ця людина. Завантажити можна картинки й PDF до 2 МБ. Щоночі все повертається до початкового стану, а з цими входами всі бачать, що додали інші, тож вводьте вигаданий вміст.

Демо-входи

  • Власник студії: camille@atelierbrume.example / demo-owner
  • Фрилансер на одному проєкті: oskar@bergmotion.example / demo-freelancer
  • Головний контакт клієнта: jonas@velolumen.example / demo-client
  • Засновник (адмінка всіх студій): founder@folioport.example / demo-founder

Що перевірено вже на живому порталі

  • Живі сторінки збігаються з перевіреною збіркою файл у файл і містять лише публічні налаштування: жодних приватних ключів і карт вихідного коду.
  • Без входу база, сховище файлів і серверні функції відхиляють будь-яке читання й запис, а відповідь про відсутній запис не відрізняється від відповіді про чужий.
  • Посилання дає лише свої файли; вимкнені, прострочені посилання й посилання призупиненої студії не відкриваються; файли віддаються так, що не виконуються як сторінки.
  • Усі чотири ролі перевірено вручну: вхід, завантаження від студії, фрилансера й клієнта, адмінка засновника.

Знайдено лише на справжньому Firebase і виправлено: кожне завантаження отримувало відмову, бо правила сховища читали більше записів, ніж дозволяє Firebase; завантажений файл ніколи б не з'явився, бо сервер чекав другої події про завантаження, яку надсилає лише локальна копія; адмінка засновника падала без індексу бази; файл, надісланий клієнтом, ховався за фільтром, і здавалося, що завантаження не вдалося. Кілька низьких лишаються у списку для власника, як-от серверні функції приймають запити з будь-якого сайту (вхід людини їм однаково потрібен).

Мета

Застосунок на Firebase тримає, хто що читає й змінює, у правилах доступу, а в порталі багато людей: власник і команда студії, фрилансери на одному проєкті, головний контакт клієнта та його колеги, гості з посиланням, засновник, який веде всі студії. Питання: у порталі, який ШІ здав як готовий, чи бачить і змінює кожен лише те, що йому належить?

Складність

На звичайному шляху портал працював: проєкти, етапи, затвердження, файли й посилання поводилися як слід, а без входу відвідувач не отримував нічого. У нотатках самого ШІ було обіцяно, що етап затверджує лише головний контакт клієнта і що кожен файл перевіряється щоразу, коли його відкривають. Помилки проявлялися лише тоді, коли одна людина робила те, що належить іншій: колега клієнта, фрилансер, хтось, хто щойно пішов, призупинена студія.

Рішення

Спершу правила власника записали: для кожної людини в порталі — що вона може бачити й змінювати в кожній його частині; неясні випадки вирішував власник. Потім кожне правило перевірили від імені цієї людини на локальній копії з тестовими даними, напряму через базу, сховище файлів і серверні функції, а не лише через сторінки. Виправлення поверталися ШІ звичайними словами, у три раунди, і кожен раунд перевіряли знову: що виправлено і що зламалося. Потім портал переїхав на справжній проєкт Firebase і там його перевірили теж.

Результат

29 проблем у порталі, як його здано: 5 високих, 12 середніх, 12 низьких. Люди клієнта могли читати нотатки, які студія вела про них; будь-хто з боку студії міг записати затвердження від імені клієнта й переписати минулі рішення; адреса файлу відкривалася й після того, як людина втратила доступ або студію призупинили; завантажений файл HTML чи SVG відкривався як сторінка на адресі самого порталу. Після трьох раундів 26 виправлено, 3 — частково; високих не лишилося. Самі виправлення внесли 2 високі й 6 середніх, наприклад імена кирилицею чи з надрядковими знаками, як Émile, більше не проходили реєстрацію; обидві високі й половину середніх виправлено. Власнику лишено: 3 середні, для яких треба навмисні дивні кроки, як-от схожа літера з іншого алфавіту в імені, і кілька низьких. Ще 12 місць, де власник згодом вирішив інакше, ніж розумно зробив ШІ, теж змінено, і помилками ШІ вони не рахуються. Один портал, зібраний один раз: цифри описують цей портал, а не частку для таких застосунків.

Послуга

Така сама перевірка для вашого застосунку

Ви надсилаєте код, а не паролі. Кожна проблема — з прикладом, хто що міг зробити, а кожне виправлення перевіряється знову на те, що воно зламало.