TGViewer
Channel Public Channel
Subscribers
2.56K
Photos
243
Videos
100
Links
228

Showing posts older than #449 · Back to latest

Older Posts 20 shown
Post #448 649
Bug or Defect? Завдання дня для QA: Яка база краще для зберігання такого JSON? { "user": "Іван", "items": [ { "product": "Чай" }, { "product": "Кава" } ] }
Привіт друзі - ну що чучуть розберемо цей пул?


(A) Excel ну я думаю тут не будемо сильно зупиняться і так все понятноТак,
Excel топ для таблиця хто що здав, але JSON з вкладеним масивом у Excel виглядає як трагедія.
Пробуєте розтягнути items, зберегти цілісність структури, а потім ще це все парсити... Це не база це костиль)


Чому все ж не (B) хоча так хотілось би, Так?
На перший погляд виглядає як норм: робимо таблицю users, окремо items, через user_id зв'язуємо. Але постійно є це АЛЕ, Структура JSON вимагає нормалізації а масив items це взагалі окрема таблиця ну і потрібні JOIN'и для відновлення повної структури
І якщо у product завтра додасться поле price треба міняти схему.

це ускладнює зберігання гнучких структур.
SQL, дійсно хороший варіант, коли схема стабільна та фіксована.

(D) Google Docs, для копіпасту - тут теж все просто і зрозуміло)
Ніяких індексів, запитів, цілісності, Це не база, а текстовий документ. JSON там зберігається просто як текст.



ну і чому саме (C) NoSQL, правильна відповідь)
Наприклад, MongoDB, документна база, яка приймає JSON/BSON як є. Це прямо такий об’єкт, без трансформацій, зберігається як документ. Масиви, вкладення, різні типи ну і усе зберігається без втрати структури. це дуже підходить для API-first підходу, де UI/API головні, а база лише бекенд.

Якщо прям Технічно - insertOne({ user: "Іван", items: [...] }), це вже вся операція, як що пошук: db.orders.find({ "items.product": "Чай" }) так кажучи Без JOIN, без схеми, без болю

У тестах зручно перевіряти, що API повертає, і зберігати аналогічну структуру.

як кажуть QA не тільки клік і подивився.
А треба зрозуміти, як і де зберігаються дані, це вже рівень вище.
Бо коли API скаже "500", ти маєш знати, де воно могло впасти.

Обійняв 🤗
  • 🔥 11
  • ❤‍🔥 4
  • 🤗 3
  • ❤ 1
Post #447 647
  • 🔥 6
  • ❤ 4
  • 👍 1
  • 🤔 1
Post #446 674
Привіт, колеги!
Як ваш день, як настрій?

Ну шо, вчора реально відпочили, чи відпочивали з ноутом на колінах?

Бо в мене, як завжди: що вихідний, що ні одне і те саме.

Купа лекцій + ще й підготовка матеріалу для для учнів ну і для вас звісно)

Сьогодні зловив відео, яким просто не можу не поділитися.
Це реально Я + 50% з вас, які вже в середу чекають пʼятниці 😭

Ну що
Видихнули.
Попили кави.
Погнали розносити таски з силою QA 😜

Гарного вам дня і хай буде продуктивним!
Сильні.💛
  • 👍 6
  • ⚡ 3
  • 😭 3
  • 💯 2
  • 🤗 2
  • ❤ 1
Post #445 651
  • ❤ 5
  • 🔥 3
  • 👍 1
Post #444 749
Друзі, доброго ранку!


Як ви? Як настрій? Надіюсь, що ви в безпеці і з гарячою кавою в руках

У мене сьогодні день почався з новин про нові фішингові атаки, прям лізуть звідусіль


Тому хочу вам щиро порадити одну топову штуку безкоштовний курс від Alison по цифровій безпеці - я його рекомендую свої учням - бо бувають тицяють усе підряд
Digital Security Awareness
https://alison.com/course/digital-security-awareness

так те що я люблю и багато хто

Дасть круте розуміння як працюють фішингові атаки
Навчить розпізнавати небезпеки
І ще сертифікат отримаєте для галочки)))

Зараз у час, коли фішингце вже не там десь у банку, а ой, це мені на пошту зараз прилетіло, знання реально рятують.

якщо ще хтось якись знає кидайте комент)

А поки бажаю вам продуктивного, спокійного дня!
Сильні 💛
Обняв 🤗
Alison Free Online Cyber Security Awareness Course | Alison Learn about types of security threats, social engineering, identity theft, and data classification in this free online cyber security awareness course.
  • 🔥 10
  • ❤ 3
  • 🤗 2
Post #443 753
Bug or Defect? Доброго вечора) Я знаю, я обіцяв і не забув. Сьогодні трохи про безпеку. Не лекція, а просто по-людськи, шо я юзав, юзаю, і за що не соромно порадити. Тема реально зараз гаряча, всі говорять про CVE, вразливості, атаки на прод, і навіть QA вже не може нічого…
Всім доброго вечора друзі! як ваш настрій?

ну що продовжуємо далі?

OWASP ZAP коротко, по справі і для чого це

почнемо саме з інструменту, який дійсно використовував не один раз. Не з курсів. Не з теорії. А коли треба було швидко перевірити вебдодаток і не чекати, поки хтось підключиться.

Що я маю вам сказати за цей ZAP?

https://www.zaproxy.org/
ZAP (Zed Attack Proxy) це DAST-сканер від OWASP. якщо дуже коротко то його завдання, перевірити вебдодаток у дії, знайти дірки, показати, що саме можна зламати прямо зараз. Відкрив, запустив, перевірив.

де можно його застосовувати,

- Перевірка після інтеграцій на QA-середовищі
- Перевірка на швидку руку перед демкою
- Коли бекенд чи фронт поводиться дивно, а деви кажуть "у нас все норм"
- Просто як звичка, щоб не тягнути в прод фігню

Вміє він не багато - але як)
- це втоматичний скан по всіх сторінках і запитах
- Фуззинг форм, параметрів, щоб подивитися, чи щось не ламається
- Працює через зручний UI або з CLI
- і у звісно підтримка інтеграцій: GitHub Actions, Jenkins тощо, також Можна проганяти Postman-колекції

Во флоу він ну ше простіше ніж ви собі уявляєте,

Скачав, Ввів URL свого стенду

Вибрав режим "Automated Scan"

Подивився, що вилізло у вкладці "Alerts"

Якщо потрібно, включив проксі, походив по сайту вручну, і прогнав всі збережені запити ще раз

на шо саме треба звертати увагу то це на
Неправильні заголовки (X-Frame, CSP, XSS і т.д.), Відсутність Secure/HttpOnly у cookies, IDOR і відкрите API без авторизації

Звісно шо ZAP не замінить повноцінний пентест, але для повсякденної практики QA, саме те. Тим більше, що можна інтегрувати в пайплайни CI і запускати на кожен білд.

Мій поінд у чому
Якщо ти QA і працюєш з вебом, знайди 10 хвилин, розберися з ZAP. Це простий і ефективний інструмент, який реально підсвітить речі, що можуть пройти повз тебе. І це той самий момент, коли ти не просто клікаєш UI, а закриваєш вразливості ще до того, як про них хтось напише в чаті клієнта.

Так що ось так)

Я думаю що багато хто з вас вже знає про нього і юзать, якщо ні стобуйте, потім скажите як вам це

Всім гарного вечора друзі, відпочівайте а ще я попрацюю - треба готувати нови теми для учнів)

Всіх обняв 🤗🤗🤗
ZAP The ZAP Homepage Welcome to ZAP!
  • ❤‍🔥 12
  • 🔥 7
  • ❤ 1
  • 😁 1
Post #442 611
  • 👀 8
  • 🔥 3
  • 👍 2
Post #441 643
Банда, всім доброго раночку ☀️☀️☀️


Як ви? Встигли відпочити?
Бо понеділок починається з класики:
беклог ще з п’ятниці, купа питань від девів, хтось уже в чаті а глянеш?

А ти з кавусею в руці гордо заходиш у тиждень, красень 😄

А тепер риалії життя
Завтра у нас офіційний вихідний
І я ще в п’ятницю подумав: Ооо, візьму ще й понеділок собі ООО і буде 4 дні відпочинку! цеж просто міні відпустка не круто ні??

Але ж ні.
Не взяв. Бо сезон відпусток, людей мало, а я такий думав - А якщо щось впаде? Хто підхопить? ну короче як завжди - диагноз як же без мене(

Коротше, сьогодні я на роботі.
Розгрібаю, працюю, як справжній QA

Як ви з цим сіндромом "як же без мене " Справляєтесь?? чи так як я теж?

Всім гарного дня - і гарного початку тижня)
на цьому тижні хочу зробити багато крутой інфи) вона є але треба оформити)

Обняв 🤗🤗🤗
  • ❤ 23
  • 💯 6
  • 🤗 3
Post #440 739
Друзі, доброго ранку! 🌞

Як ваш настрій у суботу? Поки ви насолоджуєтесь кавою й спокійною атмосферою, хочу поділитися чудовим і корисним інсайтом з технічної сторони

https://medium.com/%40fulminoussoftwares/best-practices-for-testing-web-applications-in-2025-6d8f7f6460b9

Гарної суботи і продуктивного вікенду! Обняв 🤗
Medium Best Practices for Testing Web Applications in 2025 As technology rapidly evolves, web applications are becoming more advanced, interactive, and integral to business operations. With the…
  • ❤ 8
  • 👍 5
  • 🔥 2
  • 🤯 1
Post #439 824
Bug or Defect? Всім доброго вечора друзі) Щось давно не було! Вечірня історія QA. Як перевірити, чи проект світиться назовні і заробити плюсик в репутацію. ну що я маю вам сказати. Повертаємось до теми безпеки. І якщо ви QA, який не просто клікає кнопки, а хоче розуміти…
Всім доброго вечора) Як ваш день?

Ну шо, обіцянку тримаю. Ви ставили серденько а значить, буде продовження.
Тема реально важлива, і сьогодні практичне доповнення, типові шляхи, які варто перевірити, якщо ви хочете побачити а чи не світиться у вас щось зайве


Що я маю вас сказати, ось ТОП службових файлів і директорій, які іноді забувають сховати

Як завжди по класиці через curl -I або навіть просто в браузері, якщо IP/домен доступний)

Це перевірка конфігів
curl -I http://<IP>:8080/.env
curl -I http://<IP>:8080/config.json
curl -I http://<IP>:8080/.htpasswd


Це лог-файлів
curl -I http://<IP>:8080/debug.log
curl -I http://<IP>:8080/logs/latest.log


Це git
curl -I http://<IP>:8080/.git/config
curl -I http://<IP>:8080/.git/HEAD
curl -I http://<IP>:8080/.gitignore


Це health/статуси
curl -I http://<IP>:8080/healthz
curl -I http://<IP>:8080/server-status
curl -I http://<IP>:8080/internal/status


ну і не забувайте шо якщо це https то це по замовчуваню 443 - на 8080 це я вам як приклад)


Якщо щось з цього повертає 200 OK це означає
- Файл/шлях світиться
- Немає захисту (навіть найпростішого deny all або auth_basic)
- І будь-хто ззовні може отримати доступ до внутрішньої інфи (url-и, конфіги, ключі, логи)

І ше раз повторюсь чому це критично
- Це не якась дрібничка, це може коштувати компанії витоку
- Це може бути точкою входу для атаки
- І ви, як QA, можеш бути тим, хто зупинив це ще до релізу

ну і мій поіт по висновку
куа не зобов’язаний бути сек’юріті-спецом, але розуміти, де шукати дірки, це вже 50% справи. Навіть простий curl і трохи уважності можуть підняти тебе в очах команди.


Ну що всім гарного вечора друзі, відпочивайте хто як вміє)

Всіх обняв 🤗💛
  • 👍 16
  • ❤‍🔥 8
  • ❤ 3
  • 🤗 1
Post #438 753
  • 👀 7
  • 🔥 4
  • 👍 3
Post #437 797
Банда привіт!
Сьогодні п’ятниця, той день, коли хочеться все встигнути, все доробити, і вже о 17:00 сидіти нога на ногу з кавусею в руках

Але ж ми знаємо, як воно буває.
18:00 і твій тімлід такий: А давайте ще швидко придумаємо концепт на понеділок. 😅
Ти якого вже як годину у компа нема)))
Ви сильні 💪 Гарного дня!
  • 🔥 9
  • 😁 8
  • ❤ 2
Post #436 803
Ну що, обіцяний розбір хто винен, коли після логіна ви опиняєтесь на дашборді, а там дані ніби з минулого життя.

І так що я маю вам сказать!

(A) Компонент кешує старий state і чому одна з правильних відповідей
Це прямо топова причина, фронт після логіна не перерендерив потрібний компонент або взяв дані з попереднього useState/useEffect.
Таке буває, якщо логіка не підв’язана на userId чи authState, а просто працює як було.


(B) Куки не оновились після логіна це майже відпадає.
Якби куки не оновились, API скоріш за все повернув би 401 або дані старого юзера, А ми ж бачимо, що API дає правильну відповідь, просто UI не встигає або не знає.


(C) Браузер тримає старий localStorage тут можливо, але залежить від реалізації. бо якщо фронт бере дані не з API, а з localStorage (бо так хтось оптимізував) то після логіна може не бути оновлення.
Тоді в дашборді буде старе userInfo, поки не перезавантажиш сторінку.



(D) Race condition між запитами. це серйозний кандидат у винуватці.
Уявіть ви логінитесь, UI одразу відправляє запит на дані юзера, але токен або куки ще не оновились.
І бах дашборд приходить з даними попереднього юзера або взагалі кешованим.


(E) У бекенда затримка в записі даних, Рідко, але трапляється.
Якщо бек ще дописує сесію, або профіль юзера не одразу оновлюється в БД тоді дані можуть повертатись із затримкою.
Це зазвичай вирішується ретраєм або затримкою перед фетчем.


Якщо ловили таке у проєктах діліться як відловлювали.


Note: Про зустріч) це не інфо циганство це просто корисна зустріч щоб круто провести час, поспілкуватися обсудити якісь круті насушні питання)
  • ❤ 11
  • 🔥 3
  • 👍 2
Post #433 771
Збираємося???
  • 👍 25
  • ❤ 3
Post #432 838

This post (sticker, poll or similar) has no web preview. Open in Telegram

  • 🔥 21
  • ❤ 2
  • ⚡ 2
Post #431 871
  • ⚡ 4
Post #429 748
Друзі, всім доброго раночку ☀️
Сподіваюсь, ви в безпеці, і вже з кавою)

Нехай сьогодні буде день без багів, з приємною командою і нормальним інтернетом (це теж важливо ) бо у мене вчора був просто жесть.
А якщо ви сьогодні не на роботі просто відпочиньте. Ви це заслужили 💛

А відео просто як легке нагадування всім, хто часом переживає, що GPT, AI, роботи йдуть забирати нашу роботу.


Спойлер, не заберуть, якщо ти думаєш, аналізуєш і вмієш задавати питання 😉

Гарного і спокійного вам дня, обняв 🤗

НА ВІДЕО ПРИСУТНІЙ МАТ
  • 😁 12
  • 🤩 2
  • ❤ 1
Post #428 810
Всім доброго вечора друзі)

Щось давно не було!
Вечірня історія QA. Як перевірити, чи проект світиться назовні і заробити плюсик в репутацію.

ну що я маю вам сказати.

Повертаємось до теми безпеки. І якщо ви QA, який не просто клікає кнопки, а хоче розуміти, що реально з проектом ця історія для вас.

Сьогодні поділюсь одним лайфхаком з реальної практики.

І якось прочитав я статтю, що іноді деви залишають службові файли десь у публічному доступі, просто не подумавши.

Задача яка перевірити, чи проект відкриває щось зайве через nginx. якщо якась службова інфа світиться зовні, це реальна дірка.
І я вирішив це перевірити

і так був файл який реально світиться зовні в якому інфа про версіі, номера сертифікатів і т.д до той чи іншой інфи) в нашому випадку той файлик не велику інфу несе і його прикрили) але це могло чи у вас може буди важливим)

Суть яка
Береш якийсь умовний, непримітний файл. Називаєш його скажімо,
internal-status/health.txt або zxc123/debug.log.


Далі, пробуєш просто постукати по порту напряму.
Наприклад, у вас девсервер був на
10.10.123.123

, і пробуйте

curl -I http://10.10.123.123:443/zxc123/debug.log


І Якщо
200 OK. І пішов контент.
то цей лог доступний зовні. Просто валяється під руками, без авторизації, прямо через NGINX.
Це не баг у коді. Це неправильна конфігурація nginx. просто забули закрити або прибрати шлях у location.

І от тут ви вже не просто QA, а той, хто потенційно врятував реліз від зливу інфи.


А тепер ще цікавіше: .git/

я часто читаю шо деви особливо не опетні забувають прятати .git, і ви можете це перевірити не відкрита службова папка .git/ (а вона часом випадково заливається разом із кодом).

просто зробіть
curl -I http://{{IP}}/.git/config

І якщо знову 200 OK і у відповідь прийшов вміст git-конфігу з remote URL, ім'ям розробника, і навіть ssh-ключем (true story 🫣). то це просто провал)

Це реальна загроза, бо
 .git/HEAD, .git/config, .git/index

- відкривають структуру репозиторію, через них можна відновити весь код і навіть знайти секрети, які колись хтось пушнув

як перевірити, що шось лишнє світиться,

Найпростіше через curl
Умовно
curl -I http://<IP>:<port>/.git/config


Можете перевірити ще кілька
curl -I http://<IP>/.env
curl -I http://<IP>/debug.log
curl -I http://<IP>/logs/latest.log

Якщо щось дає 200 OK бігом в чат з девами


Чому це важливо для QA?
Бо іноді найкращий тест це просто подивитись трохи глибше. Ти можеш реально знайти вразливість, яка обійде всі UI-тести, не вилізе в CI. і яку ніхто навіть не шукав

А ти взяв і знайшов і тебе вже хвалять)

Поінт від мене простий
Навіть не будучи сек'юріті інженером, ви можете знаходити великі речі. Просто треба розуміти, що і навіщо перевіряти.

Такі штуки це реальний плюс до твоєї репутації як QA.

якщо хочете окрему шпаргалку по типових шляхах, які треба перевірити чекаю від вас ❤️

а вообще спробуйте шо у вас і напешіть в коментарях шо вийшло або ви про це взнали і перевіряєте це вже давно)

Бажаю вам гарного вечора!
Обняв 🤗
  • ❤‍🔥 37
  • 🔥 9
  • 👍 6
  • ❤ 3
  • ⚡ 2
Post #427 695
  • 👀 10
  • ❤ 1
Post #425 721
Друзі, всім привіт!
Сподіваюсь, у вас усе добре і ви в безпеці
☀️

Мене часто питають учні
«Та шо ти там знову з тою кавою? По 3 рази на день п’єш?»
Так! Бо мій ранок, це стабільно кава, балкон, новини і вид на місто.
Коротше, класичний ритуал, без якого я не я.
Ось вам і шматок мого ранку

А як у вас?
Якщо не важко, зробіть фото свого ранку з каналом кавуська, ноут, ранковий світ що завгодно.
Було б дуже круто розфорсити отаку ранкову культуру серед наших QA 😄

А так з вас сонечко або серденько)

Всім гарного, продуктивного і спокійного дня.
Тримаємось, працюємо, вчимось і не забуваємо відпочивати.
Сильні 💪 Обняв!
  • ❤‍🔥 18
  • 🔥 11
  • 👍 4
  • 😇 1
  • 🤗 1
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →