Wyobraź sobie plaster żółtego sera. Ładny, żółty, apetyczny. Z daleka wygląda jak solidny kawałek.
Podnieś go pod światło, a zobaczysz dziury.
Ser z dziurami jest zupełnie w porządku — to nawet jego zaleta. Problem zaczyna się wtedy, gdy z takich plastrów budujesz coś, co ma coś utrzymać. Wtedy zaczyna się liczyć, gdzie dokładnie te dziury są.
To jest najlepszy obraz tego, co dzieje się dzisiaj na rynku stron internetowych.
Kod, który wygląda dobrze
Sztuczna inteligencja pisze dziś kod naprawdę sprawnie. Poprosisz o formularz kontaktowy — dostaniesz formularz kontaktowy. Poprosisz o galerię zdjęć — dostaniesz galerię. Zadziała. Wyświetli się. Wyśle wiadomość.
Powiem wprost, bo to ważne dla dalszej części tekstu: ja też korzystam z AI przy pracy. To narzędzie, tak samo jak edytor kodu czy system kontroli wersji. Kto twierdzi, że go nie używa, albo mija się z prawdą, albo pracuje wolniej, niż musi.
Różnica nie polega na tym, czy ktoś używa AI. Polega na tym, czy potrafi zobaczyć dziury w tym, co dostał.
Bo kod z AI jest właśnie jak ten plaster sera. Z daleka wygląda solidnie. Klient patrzy na gotową stronę i widzi to samo, co na stronie za dziesięć tysięcy: ładne zdjęcia, działające menu, formularz. Nie widzi tego, czego tam nie ma.
Cztery dziury, których nie widać
Dziura pierwsza: baza danych bez zabezpieczenia.
Modele językowe uczyły się na milionach przykładów kodu z internetu — w tym na tysiącach starych poradników, w których zapytania do bazy danych sklejane są ze zmiennych wpisanych przez użytkownika. Wygenerowany formularz często wygląda tak samo.
Efekt nazywa się SQL injection i pozwala obcej osobie wyciągnąć z bazy wszystko: dane klientów, hasła, treść wiadomości z formularza. Strona przy tym działa normalnie. Nikt niczego nie zauważa, dopóki dane nie wypłyną.
Osoba z doświadczeniem sprawdzi to odruchowo, bo wie, gdzie patrzeć. Osoba bez doświadczenia nie wie, że jest czego szukać — kod przecież działa.
Dziura druga: formularz bez ochrony.
Formularz kontaktowy bez zabezpieczeń to zaproszenie dla botów. W ciągu tygodnia od uruchomienia strony potrafi zebrać kilkaset śmieciowych wiadomości. Skrzynka staje się bezużyteczna, a prawdziwe zapytanie od klienta ginie między spamem.
Do tego dochodzi kwestia, o której mało kto myśli: formularz zbiera dane osobowe. Bez klauzuli informacyjnej i podstawy prawnej przetwarzania jest po prostu niezgodny z RODO — a odpowiada za to właściciel strony, nie osoba, która ją zrobiła.
Dziura trzecia: brak tego, co dzieje się po uruchomieniu.
Strona to nie jest produkt, który się kończy w dniu publikacji. Wygasa certyfikat SSL i przeglądarki zaczynają straszyć użytkowników czerwonym ostrzeżeniem. Hostingodawca podnosi wersję PHP i strona przestaje się otwierać. Kończy się ważność domeny. Trzeba dodać nową usługę do cennika.
Osoba, która zrobiła jedną stronę i zniknęła, nie zostawia po sobie nikogo, kto to ogarnie. A kod wygenerowany bez zrozumienia bywa nie do przejęcia przez kolejnego wykonawcę — bo nikt nie wie, dlaczego cokolwiek w nim działa tak, jak działa.
Dziura czwarta: żadnych papierów.
Bez umowy nie wiadomo, co dokładnie ma powstać, w jakim terminie i co się dzieje, gdy strona nie działa. Bez zapisu o prawach do treści i do oprogramowania nie wiadomo, co właściwie kupujesz. Bez faktury nie wrzucisz wydatku w koszty.
To akurat nie ma nic wspólnego z AI. To po prostu różnica między kimś, kto prowadzi firmę, a kimś, kto dorabia.
Model szwajcarskiego sera
Wracamy do sera — bo to porównanie nie jest przypadkowe.
W dziedzinie bezpieczeństwa istnieje pojęcie o dokładnie takiej nazwie: model szwajcarskiego sera. Używa się go w lotnictwie i w medycynie, wszędzie tam, gdzie pomyłka drogo kosztuje.
Idea jest prosta. Każde zabezpieczenie jest jak plaster sera z dziurami — żadne nie jest idealne. Ale kiedy ułożysz kilka plastrów jeden za drugim, dziury przestają się pokrywać. Coś, co przeszło przez pierwszą warstwę, zatrzymuje się na drugiej albo trzeciej.
Katastrofa zdarza się wtedy, gdy dziury we wszystkich warstwach ustawią się w jednej linii.
Na stronie internetowej te warstwy to: walidacja danych po stronie przeglądarki, walidacja po stronie serwera, bezpieczne zapytania do bazy, zabezpieczenie formularza, kopie zapasowe, aktualizacje, monitoring.
Osoba bez doświadczenia zrobi jeden plaster. Ładny, żółty, z jedną wielką dziurą przez środek — i nie będzie miała pojęcia, że tam jest.
Doświadczenie polega właśnie na tym: na wiedzy, ile warstw trzeba nałożyć i gdzie zwykle bywają dziury. Tego nie wygeneruje żaden model, bo ta wiedza nie bierze się z czytania kodu. Bierze się z tego, że coś kiedyś poszło źle i trzeba było to naprawić o drugiej w nocy.
Czego AI naprawdę nie zrobi
Jest jeszcze druga rzecz, o której mówi się rzadziej, a decyduje o tym, czy strona przyniesie klientów.
AI napisze każdy tekst, o jaki poprosisz. Ale nie wie, że w Twojej branży klienci pytają najpierw o cenę, a nie o zakres. Nie wie, że w firmie sprzątającej najlepiej sprzedają zdjęcia „przed i po", a u fotografa — kalendarz z wolnymi terminami. Nie zapyta, skąd dziś masz klientów, żeby ustalić, czemu ta strona ma właściwie służyć.
Nie powie Ci też, że funkcja, którą wymyśliłeś, jest niepotrzebna i tylko wydłuży projekt o dwa tygodnie.
To są rozmowy, nie polecenia. I to z nich wychodzi różnica między stroną, która „jest", a stroną, która dzwoni.
Jak sprawdzić, z kim rozmawiasz
Nie musisz znać się na kodzie, żeby to zweryfikować. Wystarczy zapytać:
Czy dostanę umowę i fakturę? Odpowiedź „a po co, przecież się dogadamy" mówi wszystko.
Co dokładnie dostaję — na własność, a co na licencję? Przy stronach opartych na autorskim systemie normą jest licencja na oprogramowanie i pełne prawa do treści. To uczciwy model, pod warunkiem że umowa mówi jasno: na jak długo, na ile domen, co się dzieje po zakończeniu współpracy. Zła odpowiedź to nie „licencja" — zła odpowiedź to brak odpowiedzi.
Co się dzieje, gdy strona przestanie działać za pół roku? Zdrowa odpowiedź brzmi konkretnie: w jakim czasie reaguję, co jest w cenie, co płatne osobno.
Kto ma dostęp do domeny i hostingu? Powinieneś to być Ty. Jeśli wykonawca trzyma domenę na swoim koncie, jesteś od niego zależny.
Pokaż stronę, którą zrobiłeś rok temu. To najlepsze pytanie z całej listy. Strona sprzed roku, która nadal działa i jest aktualizowana, mówi więcej niż całe portfolio zrzutów ekranu.
Jak zabezpieczasz formularz kontaktowy? Nie musisz rozumieć odpowiedzi. Ważne, żeby w ogóle padła.
Licencja czy własność — krótkie wyjaśnienie
Warto rozwinąć jeden punkt z listy wyżej, bo bywa źródłem nieporozumień.
Strona firmowa składa się z dwóch różnych rzeczy. Pierwsza to Twoje treści: teksty, zdjęcia, logo, cennik, dane firmy. Druga to oprogramowanie, na którym to wszystko działa — system zarządzania treścią, panel administracyjny, moduł rezerwacji.
Treści są i zostają Twoje. To nie podlega dyskusji.
Z oprogramowaniem jest inaczej i zależy to od modelu wykonawcy.
Jeśli strona stoi na gotowym systemie w rodzaju WordPressa, sam system i tak nie należy do wykonawcy — jest udostępniany na otwartej licencji. Płacisz za konfigurację i wygląd.
Jeśli wykonawca ma własny system pisany od zera i rozwijany przez lata, to jego produkt. Dostajesz do niego licencję: prawo do korzystania na swojej domenie, bezterminowo, bez ograniczeń w codziennej pracy. To dokładnie ten sam model, w którym kupujesz program księgowy albo system magazynowy — nikt nie oczekuje, że dostanie do nich kod źródłowy na własność.
Co powinno znaleźć się w umowie, żeby ten model był uczciwy:
- licencja bezterminowa, nie na abonament — strona nie przestaje działać, gdy zakończycie współpracę
- jasno wskazana domena, na której obowiązuje
- pełne prawa do wszystkich treści po Twojej stronie
- możliwość eksportu Twoich danych w czytelnym formacie
- domena i hosting zarejestrowane na Ciebie, nie na wykonawcę
Ostatni punkt jest najważniejszy z całej listy. Nawet przy licencji na oprogramowanie domena i hosting muszą być Twoje — inaczej naprawdę stajesz się zależny od jednej osoby.
Kiedy tania strona wystarczy
Żeby nie było jednostronnie: nie każdy potrzebuje wszystkich warstw sera.
Jeśli robisz jednorazową wizytówkę na wydarzenie, stronę hobbystyczną albo coś, co ma żyć trzy miesiące i nie zbiera żadnych danych — najprostsze rozwiązanie jest w porządku. Płacenie za bezpieczeństwo, którego nie potrzebujesz, nie ma sensu.
Warstwy zaczynają być potrzebne wtedy, gdy strona zbiera dane klientów, przyjmuje rezerwacje albo płatności, jest Twoim głównym źródłem zapytań, reprezentuje firmę, która odpowiada przed klientami — albo gdy jej awaria oznacza realną utratę pieniędzy.
Wtedy pytanie nie brzmi „ile to kosztuje", tylko „ile kosztuje mnie to, gdy przestanie działać".
Na koniec
Żółty ser z dziurami jest dobry. Naprawdę.
Tylko nie buduj z niego dachu.