blog7

Pamiętnik z Frontu 2

🟠 WAF, kurwo jebana, przestań mi system sprzedażowy prześladować xDDD
Krótkie case study z frontu robót nad nowym systemem rezerwacji.
Chciałem przed ścieżką sprzedażową dodać własny top-bar: logo, powrót do strony głównej, regulaminy pod ręką. Kilka linijek HTML-a i CSS-u, żeby klient po kliknięciu „kup” nie czuł się, jakby teleportował się do obcego systemu.
Prosta sprawa.
Teoretycznie.
Za 45 minut prezentacja i spotkanie, więc czasu na filozoficzne rozważania nad naturą sanitizera raczej nie było.
Wklejam kod, zapisuję i patrzę.
Tagi <style> — wypierdolone.
Atrybuty style=”” — wypierdolone.
Całe formatowanie — wypierdolone.
Zostaje nagi szkielet HTML wyglądający jak formularz zapisów na dyskotekę szkolną w 1995 roku.
Sanitizer patrzy na zwykłego <div> jak ochroniarz w galerii sztuki na faceta w dresie głesa:
„Pan tu nie stał”.
Ja rozumiem bezpieczeństwo.
Ale to jest CSS.
Dobra. Skoro nie wpuszczacie stylów drzwiami, sprawdzamy, co przechodzi przez bramkę.
Po kilku testach wyszło, że system usuwa kod osadzony bezpośrednio, ale przepuszcza odwołania do zewnętrznych arkuszy stylów.
Czyli ochroniarz zabiera Ci własną kanapkę, ale bez problemu wpuszcza dostawcę cateringu.
Cały CSS przenieśliśmy na nasz serwer. Dla testów oczywiście w wersji oczojebnie różowej, bo testy należy robić stylowo i tak, żeby nikt nie miał wątpliwości, czy coś się faktycznie załadowało.
Do systemu trafiło tylko:
<link rel=”stylesheet” href=”https://nie-na-mojej-zmianie.pl/style.css„>
I nagle działa.
Top-bar jest responsywny, pasuje do strony, a klient może wrócić do serwisu albo sprawdzić regulamin bez wychodzenia ze ścieżki zakupowej.
Bez dostępu do kodu źródłowego.
Bez grzebania w bebechach systemu.
Nie walczyłem z zabezpieczeniem na siłę. Sprawdziłem, jaką ścieżkę integracji system rzeczywiście dopuszcza, i wykorzystaliśmy ją zgodnie z jego możliwościami.
To zresztą połowa pracy w IT.
Najpierw zastanawiasz się, dlaczego kod nie działa. Potem odkrywasz, że działa — tylko ochroniarz nie przeczytał listy gości.
Problem rozwiązany. Top-bar działa. Różowy CSS wraca do piekła, z którego przyszedł.
Nie na mojej, kurwa, zmianie.

Zostaw komentarz

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone *