nobi.

Falošný poplach: keď kontrola webu hlási chybu, ktorá nie je

Spustíte kontrolu webu a na vrchu svieti červený nález: „Verejne prístupný citlivý súbor: wp-config.php.bak". Teda záloha konfigurácie s heslom k databáze, ktorú si môže stiahnuť ktokoľvek. Ak je to pravda, je to vážne. Lenže web, o ktorom hovoríme, vôbec nebol WordPress a žiadny taký súbor na ňom nebol.

Presne toto sa tento mesiac stalo pri jednom webe, ktorý prešiel naším testom. Automatické kontroly sa mýlia – každá, aj tá naša. Rozdiel medzi nástrojmi nie je v tom, či sa mýlia, ale či to priznajú a opravia. Tu je, čo sme našli a ako si podobný nález overíte sami.

Prípad 1: stránka „neexistuje", ale server tvrdí, že áno

Keď si pýtate stránku, ktorá na webe nie je, server má odpovedať kódom 404 („nenájdené"). Niektoré weby – typicky moderné aplikácie postavené na Next.js, Nuxt a podobných technológiách – však na akúkoľvek adresu vrátia kód 200 („v poriadku") a až v prehliadači ukážu text „stránka neexistuje". Tomu sa hovorí soft 404.

Kontrola, ktorá sa pýta „existuje /wp-config.php.bak?" a verí len kódu, dostane odpoveď „áno" – a vyhlási poplach. My sme kontrolu opravili tak, že pri každom podozrivom súbore pozrieme aj do jeho obsahu: záloha konfigurácie WordPressu musí obsahovať napríklad DB_NAME, súbor .env riadky typu KĽÚČ=hodnota. Ak namiesto toho príde bežná HTML stránka, súbor tam nie je.

Prípad 2: nadpis, ktorý dokreslí až JavaScript

Ten istý web dostal aj nález „stránka nemá nadpis H1". V prehliadači pritom nadpis mal. Server ho však v HTML neposlal – vložil ho až JavaScript po načítaní. Nie je to chyba v pravom zmysle: Google dnes JavaScript väčšinou spustí a nadpis uvidí. Je to však informácia, ktorú treba podať inak, než „chýba nadpis". Takýto web teraz dostane len poznámku, že nadpis vzniká až v prehliadači.

Prípad 3: súhlas s cookies zapísaný inak, než sme čakali

Kontrolujeme, či web pred súhlasom návštevníka nespúšťa meranie Google naplno (takzvaný Consent Mode, viac v článku Cookies a GDPR na webe). Nastavenie vyzerá napríklad takto:

gtag('consent', 'default', { analytics_storage: 'denied' });

Naša kontrola ho hľadala len v podobe s úvodzovkami okolo 'analytics_storage'. Zápis bez nich je v JavaScripte rovnako platný, a tak sme web, ktorý mal všetko správne, označili, akoby súhlas neriešil. Opravené – dnes rozpoznáme všetky bežné zápisy.

Prípad 4: obrázky „bez rozmerov", ktoré sa aj tak nepohnú

Obrázok bez šírky a výšky môže pri načítaní posúvať text na stránke. Niektoré obrázky to však nedokážu, lebo veľkosť im určuje okolitý rámec, nie ich vlastné rozmery – napríklad obrázky, ktoré v Next.js vypĺňajú celý rámec (režim „fill"). Hlásili sme ich zbytočne. A podobne sme hlásili chýbajúci popis (alt) pri obrázkoch, ktoré sú výslovne označené ako dekoratívne – tie ho podľa pravidiel prístupnosti mať nemajú.

Ako si nález overiť sami

Skôr než začnete niečo opravovať (alebo platiť niekoho, kto to opraví), stojí za to nález skontrolovať. Pri súboroch stačí príkazový riadok:

curl -sI https://vasadomena.sk/wp-config.php.bak | head -1
curl -s https://vasadomena.sk/wp-config.php.bak | head -c 300

Prvý príkaz ukáže kód. Ak je 404, súbor tam nie je. Ak je 200, druhý príkaz ukáže začiatok obsahu: <!DOCTYPE html> znamená obyčajnú stránku (falošný poplach), riadky s define( a DB_PASSWORD znamenajú skutočný problém – a ten treba riešiť hneď.

Pri nadpisoch a iných veciach v obsahu porovnajte zdrojový kód stránky (v prehliadači Ctrl+U) s tým, čo vidíte na obrazovke. Čo je na obrazovke, ale chýba v zdrojovom kóde, dopĺňa až JavaScript.

Čo robíme, keď sa pomýlime

Pri každom náleze v teste nobi je tlačidlo „Nesedí?". Keď si myslíte, že nález neplatí, napíšte nám – každé hlásenie preveríme a ak sa potvrdí, kontrolu opravíme pre všetky weby naraz, nie len pre ten váš. Všetky štyri opravy z tohto článku vznikli z jediného hlásenia, že nález nesedí. Ako sa nálezy rátajú do skóre, máme otvorene popísané v metodike a v článku Ako čítať skóre zdravia webu.

Ak chcete vedieť, čo náš test hovorí o vašom webe, spustite ho zadarmo – a keď niečo nesedí, ozvite sa.

Otestujte svoj web zadarmo

Bezplatná kontrola domovskej stránky za pár sekúnd. Celý web (podstránky + sitemapa) preskenujeme v platenej verzii – prečo nobi.

Spustiť kontrolu

Späť na blog