# Bezpečnosť, 11 pojmov a čo znamenajú.

> HTTP hlavičky a nastavenia, ktoré chránia návštevníkov aj samotný web. Každý pojem má vlastnú stránku s definíciou, dôvodom, prečo na ňom záleží, príkladom z praxe a zdrojmi.

Meria ich SEO + Bezpečnosť + Výkon: https://be1st.ai/sk/tools/ssp-audit

Všetky pojmy: https://be1st.ai/sk/glossary

---

## HTTPS (bezpečnosť)

Číslo kontroly: SEC1
Stránka: https://be1st.ai/sk/glossary/security/https

**Čo to je:** HTTPS je HTTP šifrované cez TLS. Heslá, formuláre a cookies tak zostanú na ceste medzi návštevníkom a serverom súkromné.

**Prečo na tom záleží:** Bez HTTPS môže útočník v sieti zachytiť a zmeniť dáta prenášané medzi používateľom a webom (man-in-the-middle útok). Moderné prehliadače označujú HTTP stránky ako 'nezabezpečené' a mnohé API (geolokácia, kamera, service workers) fungujú výlučne cez HTTPS. Google tiež používa HTTPS ako ranking signál.

**Príklad z praxe:** Stripe.com má HTTPS na každej stránke vrátane marketingových podstránok, nielen na platobnom formulári. Naopak, lokálny e-shop bez HTTPS zobrazí v Chrome varovanie 'Nezabezpečené' priamo v adresnom riadku, čo odradí zákazníkov od nákupu.

**Ako to be1st kontroluje:** Kontrola, či web používa zabezpečený protokol HTTPS namiesto nešifrovaného HTTP. HTTPS šifruje komunikáciu medzi prehliadačom a serverom pomocou TLS certifikátu, čím chráni citlivé údaje (heslá, platobné informácie) pred odpočúvaním. Kontrola overí aj certifikát: expiráciu, nesúlad s názvom domény, self-signed certifikát a neúplnú reťaz certifikátov.

**Nástroj:** [SEO + Bezpečnosť + Výkon](https://be1st.ai/sk/tools/ssp-audit) (záložka Bezpečnosť)

### Zdroje

- [Why HTTPS Matters](https://web.dev/articles/why-https-matters) (web.dev)
- [Transport Layer Security (TLS)](https://developer.mozilla.org/en-US/docs/Web/Security/Defenses/Transport_Layer_Security) (MDN)

---

## Strict-Transport-Security (HSTS)

Číslo kontroly: SEC2
Stránka: https://be1st.ai/sk/glossary/security/strict-transport-security-hsts

**Čo to je:** Strict-Transport-Security (HSTS) je HTTP hlavička, ktorá prehliadaču prikáže určitý čas používať web len cez HTTPS, aj keď niekto napíše alebo odkáže http://.

**Prečo na tom záleží:** Bez HSTS je prvá návšteva cez HTTP zraniteľná voči SSL stripping útokom: útočník môže presmerovanie na HTTPS zastaviť a odpočúvať komunikáciu. S HSTS prehliadač automaticky upgraduje na HTTPS ešte pred odoslaním požiadavky.

**Príklad z praxe:** GitHub.com posiela hlavičku Strict-Transport-Security: max-age=31536000; includeSubdomains; preload. Vďaka tomu sa doména github.com nachádza v HSTS preload liste, takže prehliadač nikdy nepošle HTTP požiadavku ani pri prvej návšteve.

**Ako to be1st kontroluje:** Kontrola prítomnosti HTTP hlavičky Strict-Transport-Security s hodnotou max-age minimálne 31536000 (1 rok). Plný počet bodov dostane HSTS s max-age aspoň 1 rok a direktívou includeSubDomains. HSTS prikazuje prehliadaču, aby všetky budúce požiadavky na doménu automaticky posielal cez HTTPS, aj keď používateľ zadá http://.

**Nástroj:** [SEO + Bezpečnosť + Výkon](https://be1st.ai/sk/tools/ssp-audit) (záložka Bezpečnosť)

### Zdroje

- [Strict-Transport-Security header](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Strict-Transport-Security) (MDN)
- [HTTP Strict Transport Security Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/HTTP_Strict_Transport_Security_Cheat_Sheet.html) (OWASP)

---

## Content-Security-Policy (CSP)

Číslo kontroly: SEC3
Stránka: https://be1st.ai/sk/glossary/security/content-security-policy-csp

**Čo to je:** Content-Security-Policy (CSP) je HTTP hlavička so zoznamom zdrojov, z ktorých smie stránka načítať skripty, štýly, obrázky a rámce. Je hlavnou obranou proti XSS.

**Prečo na tom záleží:** XSS je jednou z najčastejších webových zraniteľností. Útočník dokáže vložiť škodlivý JavaScript, ktorý ukradne cookies, presmeruje na phishingový web alebo zmení obsah stránky. CSP zabraňuje spusteniu neautorizovaných skriptov tým, že presne definuje povolené zdroje.

**Príklad z praxe:** Cloudflare.com používa striktné CSP s pravidlom script-src 'self', ktoré povolí len skripty z vlastnej domény. Ak útočník vloží externý skript z cudzej domény, prehliadač ho zablokuje, lebo daná doména nie je v povolenom zozname.

**Ako to be1st kontroluje:** Kontrola prítomnosti HTTP hlavičky Content-Security-Policy, ktorá definuje, z akých zdrojov môže prehliadač načítať skripty, štýly, obrázky a ďalšie zdroje. CSP je najúčinnejšia obrana proti XSS (Cross-Site Scripting) útokom.

**Nástroj:** [SEO + Bezpečnosť + Výkon](https://be1st.ai/sk/tools/ssp-audit) (záložka Bezpečnosť)

### Zdroje

- [Content-Security-Policy (CSP) header](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Content-Security-Policy) (MDN)
- [Content Security Policy Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Content_Security_Policy_Cheat_Sheet.html) (OWASP)

---

## X-Frame-Options

Číslo kontroly: SEC4
Stránka: https://be1st.ai/sk/glossary/security/x-frame-options

**Čo to je:** X-Frame-Options je HTTP hlavička, ktorá určuje, či iné weby smú vložiť vašu stránku do rámca. Chráni návštevníkov pred clickjackingom.

**Prečo na tom záleží:** Bez tejto hlavičky môže útočník vložiť vašu stránku do neviditeľného iframe na svojom webe a pomocou clickjackingu nalákať používateľa na kliknutie, ktoré v skutočnosti vykoná akciu na vašom webe, napríklad schválenie platby alebo zmenu hesla.

**Príklad z praxe:** Bankové portály ako mBank používajú X-Frame-Options: DENY, čím zabránia vloženiu prihlasovacieho formulára do cudzieho iframe. Útočník tak nemôže vytvoriť falošnú stránku, ktorá by prekrývala iframe s bankovou aplikáciou.

**Ako to be1st kontroluje:** Kontrola prítomnosti HTTP hlavičky X-Frame-Options, ktorá určuje, či sa stránka môže zobraziť v elemente iframe, frame alebo embed. Hlavné hodnoty sú DENY (vloženie zakázané) a SAMEORIGIN (povolené len z rovnakej domény). Kontrola uzná aj direktívu frame-ancestors v Content-Security-Policy, ktorá X-Frame-Options nahrádza.

**Nástroj:** [SEO + Bezpečnosť + Výkon](https://be1st.ai/sk/tools/ssp-audit) (záložka Bezpečnosť)

### Zdroje

- [X-Frame-Options header](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/X-Frame-Options) (MDN)
- [OWASP Secure Headers Project](https://owasp.org/projects/secure-headers-project) (OWASP)

---

## X-Content-Type-Options

Číslo kontroly: SEC5
Stránka: https://be1st.ai/sk/glossary/security/x-content-type-options

**Čo to je:** X-Content-Type-Options: nosniff je HTTP hlavička, ktorá prehliadaču zakáže hádať typ súboru, takže súbor sa nespustí ako niečo iné, než ako ho server poslal.

**Prečo na tom záleží:** Bez nosniff hlavičky môže prehliadač interpretovať nahraný textový súbor ako JavaScript a spustiť ho. Útočník tak môže nahrať škodlivý kód zamaskovaný ako obrázok alebo textový súbor, ktorý prehliadač vykoná namiesto zobrazenia.

**Príklad z praxe:** Dropbox.com posiela X-Content-Type-Options: nosniff pri všetkých odpovediach. Ak niekto nahrá súbor evil.jpg s obsahom JavaScript kódu, prehliadač ho vďaka nosniff spracuje striktne ako obrázok a skript nespustí.

**Ako to be1st kontroluje:** Kontrola prítomnosti HTTP hlavičky X-Content-Type-Options s hodnotou nosniff. Táto hlavička zabraňuje prehliadaču v MIME type sniffingu: automatickom hádaní typu obsahu, ktoré môže viesť k interpretácii neškodného súboru ako spustiteľného skriptu.

**Nástroj:** [SEO + Bezpečnosť + Výkon](https://be1st.ai/sk/tools/ssp-audit) (záložka Bezpečnosť)

### Zdroje

- [X-Content-Type-Options header](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/X-Content-Type-Options) (MDN)
- [OWASP Secure Headers Project](https://owasp.org/projects/secure-headers-project) (OWASP)

---

## Referrer-Policy

Číslo kontroly: SEC6
Stránka: https://be1st.ai/sk/glossary/security/referrer-policy

**Čo to je:** Referrer-Policy je HTTP hlavička, ktorá určuje, akú časť aktuálnej URL pošle prehliadač iným webom, keď návštevník klikne na odkaz alebo sa načíta zdroj.

**Prečo na tom záleží:** Bez správnej Referrer-Policy môže URL odoslaná v Referer hlavičke prezradiť citlivé údaje, napríklad tokeny v query parametroch, interné URL adresy alebo informácie o vyhľadávaní. Externé služby (analytika, reklamy) tak môžu získať prístup k údajom, ktoré im nepatria.

**Príklad z praxe:** GitHub.com používa Referrer-Policy: strict-origin-when-cross-origin. Keď kliknete na externý odkaz z privátneho repozitára, cieľový web dostane len https://github.com ako referrer, nie celú URL s názvom privátneho repozitára.

**Ako to be1st kontroluje:** Kontrola prítomnosti HTTP hlavičky Referrer-Policy, ktorá určuje, koľko informácií o URL sa posiela v hlavičke Referer pri navigácii alebo načítaní zdrojov. Odporúčaná hodnota je strict-origin-when-cross-origin alebo no-referrer. Hodnotu unsafe-url kontrola považuje za problém.

**Nástroj:** [SEO + Bezpečnosť + Výkon](https://be1st.ai/sk/tools/ssp-audit) (záložka Bezpečnosť)

### Zdroje

- [Referrer-Policy header](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Referrer-Policy) (MDN)
- [OWASP Secure Headers Project](https://owasp.org/projects/secure-headers-project) (OWASP)

---

## Permissions-Policy

Číslo kontroly: SEC7
Stránka: https://be1st.ai/sk/glossary/security/permissions-policy

**Čo to je:** Permissions-Policy je HTTP hlavička, ktorá stránke a jej rámcom zapne alebo vypne funkcie prehliadača, napríklad kameru, mikrofón alebo polohu.

**Prečo na tom záleží:** Bez Permissions-Policy môže škodlivý iframe vložený cez reklamu alebo widget tretej strany pristúpiť ku kamere, mikrofónu alebo geolokácii používateľa. Táto hlavička umožňuje explicitne vypnúť API, ktoré web nepotrebuje, a obmedziť tak útočnú plochu.

**Príklad z praxe:** Stripe.com nastavuje Permissions-Policy: camera=(), microphone=(), geolocation=(), čím zakáže prístup ku kamere, mikrofónu aj geolokácii na celom webe. Ak by sa na stránku dostal škodlivý skript, nemohol by aktivovať tieto senzory.

**Ako to be1st kontroluje:** Kontrola prítomnosti HTTP hlavičky Permissions-Policy (predtým Feature-Policy), ktorá obmedzuje prístup stránky a vložených iframe-ov k citlivým API prehliadača ako kamera, mikrofón, geolokácia, platobné API a ďalšie.

**Nástroj:** [SEO + Bezpečnosť + Výkon](https://be1st.ai/sk/tools/ssp-audit) (záložka Bezpečnosť)

### Zdroje

- [Permissions-Policy header](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Permissions-Policy) (MDN)
- [Permissions Policy guide](https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/Permissions_Policy) (MDN)

---

## Zmiešaný obsah (mixed content)

Číslo kontroly: SEC8
Stránka: https://be1st.ai/sk/glossary/security/mixed-content

**Čo to je:** Zmiešaný obsah sú zdroje, napríklad obrázky alebo skripty, ktoré HTTPS stránka načítava cez nešifrované HTTP. Prehliadače ich blokujú alebo označia.

**Prečo na tom záleží:** Aj keď je hlavná stránka na HTTPS, HTTP zdroje môže útočník v sieti zachytiť a zmeniť. Škodlivý skript načítaný cez HTTP na HTTPS stránke má plný prístup k DOM a cookies. Prehliadače aktívny mixed content (skripty, iframe) blokujú, pasívny (obrázky) označujú varovaním.

**Príklad z praxe:** E-shop na HTTPS načíta produktové obrázky z http://cdn.example.com/product.jpg. Chrome zobrazí v konzole varovanie 'Mixed Content' a ikona zámku zmizne. Po zmene na https://cdn.example.com/product.jpg je stránka plne zabezpečená a zámok sa vráti.

**Ako to be1st kontroluje:** Kontrola, či HTTPS stránka neobsahuje zdroje načítané cez nešifrovaný HTTP protokol (obrázky, skripty, štýly, fonty). Takýto obsah sa nazýva 'mixed content' a narúša bezpečnosť celej stránky.

**Nástroj:** [SEO + Bezpečnosť + Výkon](https://be1st.ai/sk/tools/ssp-audit) (záložka Bezpečnosť)

### Zdroje

- [Mixed content](https://developer.mozilla.org/en-US/docs/Web/Security/Defenses/Mixed_content) (MDN)
- [Content Security Policy guide](https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/CSP) (MDN)

---

## Bezpečnostné varovania (security warnings)

Číslo kontroly: SEC9
Stránka: https://be1st.ai/sk/glossary/security/security-warnings

**Čo to je:** Bezpečnostné varovania sú správy, ktoré prehliadač zapíše do konzoly, keď na stránke nájde bezpečnostný problém, napríklad zablokovaný zdroj alebo chybné pravidlo.

**Prečo na tom záleží:** Bezpečnostné varovania v konzole signalizujú potenciálne zraniteľnosti, ktoré útočník môže zneužiť. Ignorovanie varovaní môže viesť k úniku dát, neautorizovanému prístupu alebo kompromitácii celej aplikácie. Bezchybná konzola je znakom dobre zabezpečeného webu.

**Príklad z praxe:** Web s formulárom na HTTP stránke zobrazí v Chrome varovanie o nezabezpečenom cieli formulára. Cloudflare.com má čistú konzolu bez bezpečnostných varovaní, čo svedčí o dôslednom zabezpečení všetkých častí webu.

**Ako to be1st kontroluje:** Kontrola, či sa v konzole prehliadača nezobrazujú bezpečnostné varovania, napríklad o chýbajúcich bezpečnostných hlavičkách, neplatných certifikátoch, zastaralých TLS verziách, nebezpečných formulároch alebo problémoch s CORS politikou.

**Nástroj:** [SEO + Bezpečnosť + Výkon](https://be1st.ai/sk/tools/ssp-audit) (záložka Bezpečnosť)

### Zdroje

- [Security on the web](https://developer.mozilla.org/en-US/docs/Web/Security) (MDN)
- [OWASP Secure Headers Project](https://owasp.org/projects/secure-headers-project) (OWASP)

---

## Nezabezpečené cookies (insecure cookies)

Číslo kontroly: SEC10
Stránka: https://be1st.ai/sk/glossary/security/insecure-cookies

**Čo to je:** Nezabezpečená cookie je cookie bez atribútu Secure, HttpOnly alebo SameSite, takže ju môže iný web ukradnúť alebo zneužiť.

**Prečo na tom záleží:** Cookie bez Secure atribútu sa posiela aj cez HTTP, kde ju útočník zachytí. Bez HttpOnly ju ukradne XSS útok cez prístup ku cookies v JavaScripte. Bez SameSite=Strict alebo Lax môže útočník vytvoriť CSRF útok: falošný formulár, ktorý automaticky odošle požiadavku s cookie obete.

**Príklad z praxe:** Stripe Dashboard nastavuje session cookie so všetkými troma atribútmi: Set-Cookie: session=abc123; Secure; HttpOnly; SameSite=Lax. Naopak, web bez týchto atribútov riskuje, že útočník cez XSS ukradne session cookie a prevezme účet používateľa.

**Ako to be1st kontroluje:** Kontrola, či cookies majú nastavené bezpečnostné atribúty: Secure (posielanie len cez HTTPS), HttpOnly (neprístupné cez JavaScript) a SameSite (ochrana pred CSRF útokmi). Chýbajúce atribúty vytvárajú vážne bezpečnostné zraniteľnosti.

**Nástroj:** [SEO + Bezpečnosť + Výkon](https://be1st.ai/sk/tools/ssp-audit) (záložka Bezpečnosť)

### Zdroje

- [Set-Cookie header](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Set-Cookie) (MDN)
- [Secure cookie configuration](https://developer.mozilla.org/en-US/docs/Web/Security/Practical_implementation_guides/Cookies) (MDN)

---

## Zastarané API (deprecated APIs)

Číslo kontroly: SEC11
Stránka: https://be1st.ai/sk/glossary/security/deprecated-apis

**Čo to je:** Zastarané API sú funkcie prehliadača, ktoré sa postupne rušia. Kód, ktorý ich stále používa, môže prestať fungovať, keď ich prehliadače odstránia.

**Prečo na tom záleží:** Zastaralé API často obsahujú bezpečnostné zraniteľnosti, ktoré už nebudú opravené. Niektoré zastaralé metódy zápisu do DOM môžu byť zneužité na injektáž škodlivého kódu, synchronný XHR blokuje hlavné vlákno. Prehliadače tieto API postupne odstraňujú, čo môže spôsobiť nefunkčnosť webu.

**Príklad z praxe:** Starší web používa zastaralé metódy na vkladanie skriptov do stránky namiesto moderného createElement alebo async/defer atribútov. Chrome tieto volania na pomalých pripojeniach blokuje. GitHub a Cloudflare používajú výlučne moderné API, čím zabezpečujú dlhodobú kompatibilitu.

**Ako to be1st kontroluje:** Kontrola, či web nepoužíva zastaralé (deprecated) API volania, ktoré prehliadače plánujú alebo už prestali podporovať. Patria sem napríklad synchronný XMLHttpRequest, AppCache, Web SQL a ďalšie zastaralé funkcie.

**Nástroj:** [SEO + Bezpečnosť + Výkon](https://be1st.ai/sk/tools/ssp-audit) (záložka Bezpečnosť)

### Zdroje

- [Security on the web](https://developer.mozilla.org/en-US/docs/Web/Security) (MDN)
- [HTTP Headers Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/HTTP_Headers_Cheat_Sheet.html) (OWASP)

---
