Biztonság Útmutató

Weboldal-biztonság: a fejlécektől a feltörésig

Szerző: · 6 perc olvasás · Frissítve:
Weboldal-biztonság: a fejlécektől a feltörésig - Biztonság (útmutató) a tudástárban
Weboldal-biztonság: a fejlécektől a feltörésig - Biztonság | eClick GEO-audit tudástár

A weboldal-biztonság azoknak a beállításoknak és gyakorlatoknak az összessége, amelyek megakadályozzák, hogy illetéktelen módosítsa, kiolvassa vagy a nevedben használja az oldaladat. A technikai része nagyrészt néhány HTTP-fejlécen, a titkosításon és a rendszeres frissítésen múlik.

A biztonság nem egyetlen kapcsoló. Rétegekben működik: a szállítási réteg titkosít, a böngészőnek szóló fejlécek korlátoznak, a szerveroldali frissítés zárja a réseket. Ha az egyik réteg hiányzik, a másik még véd. Ha mind hiányzik, egy automata botnak elég pár perc.

Hogyan épül fel a védelem

A rétegeket érdemes a forgalom útja mentén nézni. Először a kapcsolat jön létre, aztán megérkezik a HTML, végül a böngésző futtatja a kódot.

  1. Szállítási réteg. A HTTPS és TLS titkosítja a forgalmat. A HSTS (HTTP Strict Transport Security) fejléc pedig megtiltja a böngészőnek, hogy legközelebb HTTP-n próbálkozzon.
  2. Tartalom-réteg. A Content-Security-Policy megmondja, honnan tölthet be szkriptet az oldal. Ez fogja meg a beinjektált kártékony kódot.
  3. Böngésző-viselkedés. Az egyéb biztonsági fejlécek tiltják a keretbe ágyazást, a MIME-típus találgatást és a felesleges eszköz-hozzáférést.
  4. Alkalmazás-réteg. A CMS, a pluginek és a PHP verziója. Itt keletkezik a legtöbb valódi feltörés.

Mi hosztolási kérdés és mi a tiéd

Ez a legtöbb vitát okozó pont. A TLS-tanúsítvány, a TLS-verzió, a PHP-verzió és a tömörítés jellemzően a hoszting hatásköre. A fejlécek, a CSP, a plugin-frissítés és a tartalom viszont a tiéd.

A szolgáltató alapértelmezésben ritkán állít be CSP-t. Nem is teheti: minden oldalnak más a szabályhalmaza. A biztonsági fejlécek hiánya tehát nem hoszting-hiba, hanem elmaradt fejlesztői munka.

Miért számít ez az AI-nak és a keresőnek

Egy feltört oldal először nem látványosan törik el. A támadó SEO-spam oldalakat tesz fel, amelyek külföldi gyógyszert vagy hamis márkát hirdetnek. Ezek bekerülnek a Google indexébe, és megjelenik az index-szennyezés.

A generatív keresők a nyilvános indexből és a saját crawlereikből dolgoznak. Ha az oldalad neve mellett spam-tartalom szerepel, az beépül a modellek és a RAG-rendszerek forrásaiba. Egy Safe Browsing figyelmeztetés pedig azonnal kiveszi az oldalt a találatokból.

Mikor éles a helyzet

Három jel mutat közvetlen veszélyre. Ha ezek bármelyikét látod, a javítás nem várhat a következő sprintre.

Röviden: a fejlécek olcsók és gyorsak, a feltörés drága és lassú, ezért érdemes az előbbivel kezdeni.

Mit néz ebből a riport

Az audit a biztonsági területen a TLS-osztályzatot, a HSTS és a CSP meglétét, az alapvető biztonsági fejléceket, a szerver-információ kiszivárgását és a mixed contentet vizsgálja. Ellenőrzi az e-mail-hitelesítést, a security.txt fájlt, a cloakingot, az index-szennyezés jeleit, a domain korát és a Safe Browsing státuszt is. Minden tételnél jelzi, hogy kódban, hoszting-szinten vagy üzleti döntésben javítható.

Miért fontos

SEO-hatás

Egy Safe Browsing jelölés napok alatt elviszi az organikus forgalmat. A Search Console „Biztonsági problémák" menüpontjában megjelenik a figyelmeztetés, a találatokban pedig piros interstitial fogadja a látogatót. A visszaállítás a takarítás után kért felülvizsgálattal indul, és hetekig tarthat.

Az index-szennyezés (spam-oldalak a Google-indexben) ennél alattomosabb. A spam-oldalak elviszik a crawl-budgetet a valódi tartalmad elől. A domain tematikája összezavarodik, és ezt a Google később is nehezen felejti.

AI-értelmezhetőség

A generatív keresők forrásként hivatkoznak az oldalakra. Egy kompromittált domain neve mellé beépül a spam-tematika. A márkaemlítéseid romlanak, és ezt nem lehet egy javítással visszaállítani.

A hiányzó e-mail-hitelesítés külön kockázat. Bárki küldhet levelet a domained nevében. Ez nem SEO-kérdés, de a márkádat ugyanúgy rombolja.

Üzleti következmény

Egy webshopnál a hiányzó CSP konkrét pénz. A beinjektált szkript kiolvashatja a fizetési űrlapot. A GDPR szerint ez adatvédelmi incidens, bejelentési kötelezettséggel.

A riportokban azt látjuk, hogy a magyar KKV-oldalak többségén nincs CSP, és a fele a Server fejlécben kiírja a pontos verziószámot.

Kikre vonatkozik

Mindenkire vonatkozik

  • HTTPS és HSTS. Kivétel nincs. Egy statikus bemutatkozó oldalnál is elvárás.
  • Elavult verziók javítása. Minden CMS-nél és egyedi fejlesztésnél.
  • Alap biztonsági fejlécek. Az X-Content-Type-Options és az X-Frame-Options egy sor, kockázat nélkül.

Kiemelten fontos

  • Webshopok. Fizetési adat és személyes adat is forog. A CSP és a Permissions-Policy itt nem opció.
  • Bejelentkezéses felületek. Ügyfélportál, foglalórendszer, tagi oldal.
  • WordPress-alapú oldalak. A legtöbb tömeges támadás ezt a platformot célozza plugin-réseken át.

Ahol lazíthatsz

Staging és fejlesztői környezetnél a CSP finomhangolása várhat. A HTTP-alapú elérés viszont ott sem jó ötlet. A staging egyébként is kapjon noindex, meta robots és X-Robots-Tag jelölést vagy jelszavas védelmet.

Tisztán statikus, űrlap nélküli oldalnál a security.txt és a szigorú CSP kevésbé sürgős. A többi rétegtől ez sem mentesít.

Hogyan ellenőrzöd

1. Fejlécek megnézése

Nyisd meg a böngésző devtoolsát (F12), válts a Network fülre, frissíts, és kattints az első dokumentum-kérésre. A Response Headers alatt látod az összes fejlécet.

Terminálból gyorsabb:

  1. Futtasd: curl -sI https://pelda.hu
  2. Keresd a strict-transport-security, content-security-policy, x-content-type-options, x-frame-options sorokat.
  3. Nézd meg, mi van a Server és az X-Powered-By fejlécben.

2. TLS-osztályzat

Az SSL Labs teszt (ssllabs.com/ssltest) A vagy A+ osztályzatot adjon. A B már figyelmeztetés, a C alatt beavatkozás kell. Ellenőrizd a tanúsítvány lejáratát és a támogatott TLS-verziókat is. Részletek: SSL-osztályzat (SSL Labs).

3. Mixed content

A devtools Console fülén jelenik meg a „Mixed Content" figyelmeztetés. Nézd meg több aloldalon is, nem csak a főoldalon. Lásd: Mixed content (kevert tartalom).

4. Feltörés-jelek

  1. Keress rá: site:pelda.hu a Google-ben. Idegen nyelvű vagy furcsa címek gyanúsak.
  2. Nyisd meg a Search Console „Biztonsági problémák" menüpontját.
  3. Nézd meg a Lapok jelentésben az indexelt oldalak számát. Hirtelen ugrás gyanús.
  4. Ellenőrizd a nemrég módosított fájlokat a szerveren.

Jó jel

  • A curl -sI kimenetében ott a HSTS és a CSP.
  • A Server fejléc verziószám nélkül szerepel, vagy hiányzik.
  • Az SSL Labs A vagy A+.
  • A Console tiszta, nincs mixed content.
  • A site: keresés csak a saját oldalaidat hozza.

Rossz jel

  • X-Powered-By: PHP/7.4 a válaszban.
  • Nincs strict-transport-security sor.
  • A CSP-ben unsafe-inline és unsafe-eval együtt.
  • A HTTP-cím nem irányít át HTTPS-re.
  • Ismeretlen .php fájlok az uploads könyvtárban.

Hogyan javítod

WordPress

  1. Frissítsd a core-t, a sablont és az összes plugint. A Vezérlőpult > Frissítések alatt látod az állapotot.
  2. Állítsd a PHP-verziót legalább 8.2-re a tárhely vezérlőpultjában.
  3. Töröld a deaktivált plugineket és sablonokat. Azok is frissítetlen kódot tartalmaznak.
  4. Add a fejléceket a .htaccess fájlhoz, vagy használj biztonsági plugint (Wordfence, Really Simple Security).
  5. Kapcsold be a kétfaktoros belépést az admin fiókokra.
  6. Tiltsd le a fájlszerkesztőt: define('DISALLOW_FILE_EDIT', true); a wp-config.php fájlban.

Shopify

A TLS, a HSTS és a szerver-szintű beállítások a platform kezében vannak. Neked a következő marad:

  1. Nézd át a telepített appokat, és töröld a használaton kívülieket.
  2. Ellenőrizd a témába kézzel beszúrt szkripteket. A sablonszerkesztőben keress <script src= mintát.
  3. Kapcsolj be kétfaktoros belépést minden staff fióknál.
  4. A Checkout Extensibility miatt a fizetőoldalon egyedi szkript már nem futhat. Ez neked jó hír.

Unas

  1. Ellenőrizd a Beállítások alatt, hogy a HTTPS-átirányítás aktív.
  2. A saját sablonba vagy a fejlécbe illesztett külső szkripteket nézd át. Csak ismert forrás maradjon.
  3. A biztonsági fejlécek platform-szinten érkeznek. Amit nem tudsz állítani, azt a támogatásnál kérdezd meg.
  4. Adminisztrátori jelszavakat cserélj, és a nem használt fiókokat töröld.

Shoprenter

  1. A HTTPS és a tanúsítvány automatikus. Ellenőrizd az SSL Labs teszttel, hogy tényleg A osztályzat.
  2. A sablonban (Twig) használt külső forrásokat vezesd listába. Ez lesz a CSP alapja.
  3. A bővítményeket a hivatalos piactérről frissítsd.
  4. Fejléc-módosításhoz a platform támogatását kell bevonni.

Egyedi fejlesztés

  1. Állítsd be a fejléceket a webszerveren, ne az alkalmazásban. Nginx-nél add_header, Apache-nál Header always set.
  2. A CSP-t Content-Security-Policy-Report-Only módban indítsd. Gyűjtsd a jelentéseket 1-2 hétig.
  3. Szűrd ki a valós forrásokat, aztán válts éles módra.
  4. Kapcsold ki a verziószám-kiírást: Nginx-nél server_tokens off;, PHP-nál expose_php = Off. Lásd: Server-fejléc kitettség.
  5. Tedd fel a security.txt (RFC 9116) fájlt a /.well-known/ könyvtárba.
  6. Automatizáld a függőség-frissítést (Dependabot vagy composer audit a CI-ban).

Sorrend, ha kevés az idő

  1. HTTPS-átirányítás és HSTS.
  2. Elavult PHP, CMS, plugin frissítése.
  3. Verziószám-kiírás kikapcsolása.
  4. Alap fejlécek: X-Content-Type-Options, X-Frame-Options, Referrer-Policy.
  5. CSP bevezetése report-only módban.

Gyakori hibák

  • A HSTS bekapcsolása hosszú max-age-dzsel, tesztelés nélkül. Ha valami nem megy HTTPS-en, a böngésző hónapokig nem enged vissza, és a látogató nem tud belépni.
  • CSP-ben unsafe-inline és unsafe-eval együtt. A fejléc ott van a riportban zöld pipával, de gyakorlatilag semmit nem tilt.
  • Csak a főoldalt ellenőrzik. A mixed content jellemzően régi blogbejegyzésekben és termékleírásokban marad, ahová HTTP-s képet illesztettek.
  • Deaktivált plugin marad a szerveren. A kód elérhető marad URL-en keresztül, és a sebezhetőség is.
  • Feltörés után csak a spam-oldalakat törlik. A backdoor fájl a helyén marad, és két hét múlva minden visszajön.
  • Az e-mail-hitelesítést kihagyják. Nem látszik a weboldalon, ezért senki nem foglalkozik vele, közben bárki küldhet levelet a domain nevében.
  • A verziószám kiírását „jelentéktelennek" minősítik. Az automata botok pont erre szűrnek, mielőtt exploitot indítanának.

Technikai példa

Egy működő fejléc-készlet Nginx-en. Ez a minimum, amit egy éles oldal elvár:

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always;
server_tokens off;

A server_tokens off; a verziószámot veszi ki a Server fejlécből. A HSTS max-age értéke 31536000 másodperc, vagyis egy év. Ezt csak akkor állítsd be, ha minden aloldal HTTPS-en fut.

Ellenőrzés terminálból:

curl -sI https://pelda.hu | grep -iE 'strict-transport|content-security|x-content-type|x-frame|server|x-powered'

A kimenetben a server sor ideális esetben csak nginx vagy Apache, verzió nélkül. Ha X-Powered-By: PHP/7.4 jelenik meg, két dolgod van: kikapcsolni a kiírást, és frissíteni a PHP-t.

Egy induló CSP, amit report-only módban érdemes kipróbálni:

Content-Security-Policy-Report-Only: default-src 'self'; script-src 'self' https://www.googletagmanager.com; img-src 'self' data: https:; style-src 'self' 'unsafe-inline'; frame-ancestors 'self'

A style-src itt még engedi az inline stílust, mert a legtöbb sablon így működik. A script-src viszont már szigorú. Ha a Console nem jelez hibát egy-két hét után, válts Content-Security-Policy fejlécre.

Gyakori kérdések

Elég a HTTPS, ha nincs érzékeny adat az oldalon?
Nem elég. A HTTPS a szállítást védi, de nem akadályozza meg a feltörést vagy a kártékony szkript befűzését. A böngészők ráadásul bizonyos funkciókat csak HTTPS-en engedélyeznek. Az oldal hitelessége szempontjából is alap.
A tárhelyszolgáltató nem oldja meg ezt helyettem?
Részben igen. A TLS-tanúsítvány, a TLS-verzió és a PHP-verzió általában hoszting-szintű kérdés. A biztonsági fejlécek, a CSP és a plugin-frissítés viszont a te felelősséged marad, mert ezeket a szolgáltató nem tudja találgatni.
Honnan tudom, hogy feltörték-e az oldalamat?
Keress rá site:domained.hu formában a Google-ben. Ha idegen nyelvű vagy furcsa tematikájú oldalak jelennek meg, valószínűleg SEO-spam feltörés történt. Nézd meg a Search Console Biztonsági problémák menüpontját is.
Miért nem javasoljátok azonnal a szigorú CSP-t?
Mert egy rosszul beállított CSP leállítja az oldal működő részeit. A kosár, az űrlap és a méréskód is elnémulhat. Ezért indul report-only módban: így látod a hibákat anélkül, hogy bármi eltörne.
Mennyi idő alatt lehet ezeket rendbe tenni?
A fejlécek és a verziószám-elrejtés általában egy fél napos munka. A PHP- és CMS-frissítés függ a bővítményektől, jellemzően néhány nap. Egy éles CSP finomhangolása 2-4 hét, mert mérni kell a valós forgalmat.

Források

Kapcsolódó fogalmak

Nézd meg, hogy áll ebben a te weboldalad

Futtass egy SEO-auditot: pontszám, fejlesztői ítélet, a leggyorsabb javítások, és minden tételhez bizonyíték.

Ingyenes SEO-audit indítása