← Zpět na obsah

Kapitola 28: Digitální stopa a cookies

Digitální stopa - co po sobě zanecháváme
Digitální stopa - co po sobě zanecháváme

1. Úvod: Co po sobě zanecháváš na internetu?

Když jdeš po sněhu, zanecháváš za sebou stopy. Každý, kdo jde za tebou, může vidět, kudy jsi šel. Na internetu je to podobné. Každá tvoje aktivita – co si prohlížíš, co píšeš, co stahuješ – zanechává digitální stopu. A stejně jako ve sněhu, i na internetu po tobě zůstávají stopy, které mohou ostatní vidět. V této kapitole se naučíme, co je to digitální stopa, co jsou cookies a jak chránit své soukromí.

2. Digitální stopa: Tvoje vizitka na internetu

Digitální stopa je souhrn všech dat, která po sobě zanecháváš, když používáš internet a digitální zařízení.

Definice: Digitální stopa

Digitální stopa je soubor všech informací, které o tobě existují v digitálním světě. Vzniká každou tvou aktivitou online.

Dva druhy digitální stopy:

Proč je digitální stopa důležitá?

Tvoje digitální stopa může o tobě hodně prozradit. Může ovlivnit, jaké reklamy uvidíš, jaké zprávy ti budou doporučeny, nebo dokonce jak tě budou vnímat budoucí zaměstnavatelé.

3. Cookies: Drobné sušenky, které si tě pamatují

Když navštívíš webovou stránku, často se tě zeptá, jestli souhlasíš s cookies. Co to vlastně je?

Cookies - jak si weby pamatují uživatele
Cookies - jak si weby pamatují uživatele

Definice: Cookies

Cookies jsou malé textové soubory, které si webové stránky ukládají do tvého počítače nebo mobilu. Pomáhají si pamatovat tvé preference, jako je jazyk, přihlášení nebo co jsi měl/a v košíku v e-shopu.

Proč webové stránky používají cookies?

Narušení soukromí: Když cookies jdou moc daleko

Některé cookies mohou sledovat tvé chování na internetu napříč různými stránkami. To může vést k narušení soukromí, protože pak o tobě firmy vědí víc, než bys chtěl/a.

Příklad: Prohlížíš si boty v e-shopu. Pak jdeš na jinou stránku a najednou tam vidíš reklamu na ty samé boty. To je práce cookies, které tě sledují.

4. Jak minimalizovat rizika a chránit své soukromí?

Je důležité si uvědomit, že na internetu nejsi anonymní. Ale můžeš udělat hodně pro to, abys chránil/a své soukromí.

4.1. Dodržuj pravidla a buď opatrný/á

4.2. Bezpečnostní nastavení ve svých zařízeních

4.3. Co dělat, když se něco nezdá?

Pokud máš pocit, že je tvoje soukromí narušeno, nebo se ti něco na internetu nezdá, požádej o pomoc. Řekni to rodičům, učiteli nebo někomu dospělému, kdo se v tom vyzná.

Člověk a digitální svět

V digitálním světě je naše soukromí velmi křehké. Každým kliknutím o sobě něco prozrazujeme. Je důležité si uvědomit, jakou digitální stopu zanecháváme a jak ji mohou ostatní využít. Učíme se tak zodpovědnosti za své online chování a za ochranu svých osobních údajů, což je klíčové pro bezpečný a svobodný život v moderním světě.

Otázky k zamyšlení

Úkoly pro praxi

  1. Moje digitální stopa: Zkus si napsat seznam 5 věcí, které tvoří tvou vědomou digitální stopu, a 3 věcí, které tvoří tvou nevědomou digitální stopu.
  2. Nastavení soukromí: Pokud používáš sociální sítě, zkontroluj si nastavení soukromí. Ujisti se, že tvé příspěvky a fotky vidí jen ti, kterým důvěřuješ.
  3. Správa cookies: Otevři si nastavení svého internetového prohlížeče (např. Chrome, Firefox). Najdi sekci "Soukromí a zabezpečení" nebo "Cookies". Zjisti, jak můžeš cookies spravovat – například je smazat nebo blokovat.

* Rozšíření pro pokročilé

GDPR a ochrana osobních údajů

GDPR (General Data Protection Regulation) je nařízení EU, které od roku 2018 chrání osobní údaje občanů. Dává ti silná práva a firmám ukládá povinnosti.

Tvá práva podle GDPR

Souhlas musí být aktivní – předvyplněná zaškrtávací políčka jsou nezákonná. Musíš aktivně zaškrtnout souhlas s cookies.

Techniky sledování

Weby a reklamní sítě používají různé metody pro sledování tvé aktivity:

Cookies

First-party cookies jsou od webu, který navštěvuješ – pamatují si tvé přihlášení, jazyk, obsah košíku. Jsou užitečné.

Third-party cookies jsou od třetích stran (Google, Facebook, reklamní sítě). Sledují tě napříč weby a vytvářejí tvůj profil pro cílenou reklamu.

Browser fingerprinting

I bez cookies tě lze identifikovat podle kombinace nastavení prohlížeče: rozlišení obrazovky, nainstalované fonty, pluginy, časové pásmo... Tato kombinace je často unikátní jako otisk prstu.

Tracking pixels

Neviditelné obrázky (1×1 pixel) v emailech. Když email otevřeš, obrázek se stáhne a odesílatel ví, kdy jsi email četl.

Nástroje pro ochranu soukromí

Existují nástroje, které ti pomohou chránit soukromí:

Typy cookies - vlastní vs. sledovací
Typy cookies - vlastní vs. sledovací

* Úkoly pro pokročilé

  1. Kontrola trackerů: Nainstaluj si rozšíření Privacy Badger nebo uBlock Origin. Navštiv oblíbené stránky a sleduj, kolik trackerů bylo zablokováno.
  2. Google Takeout: Stáhni si svá data z Google (takeout.google.com). Prozkoumej, co vše o tobě Google ví. Napiš shrnutí.
  3. Excel – Audit digitální stopy: Vytvoř tabulku: Služba, Data která sbírá, Jak se odhlásit/smazat, Moje akce. Vyplň pro 5 služeb, které používáš.
  4. Word – GDPR žádost: Napiš vzorovou žádost o přístup k osobním údajům podle GDPR. Zahrň: identifikaci žadatele, specifikaci dat, právní základ (čl. 15 GDPR).

** Rozšíření pro maturitní obory

Podrobně: Pokročilé techniky sledování

Reklamní průmysl neustále vyvíjí nové metody sledování. Některé jsou překvapivě sofistikované:

Canvas fingerprinting

Web požádá prohlížeč, aby nakreslil obrázek pomocí HTML5 Canvas. Výsledek se liší podle grafické karty, ovladačů a nastavení – a vytváří unikátní "otisk". Funguje i bez cookies!

Cross-device tracking

Reklamní sítě se snaží propojit tvé aktivity napříč zařízeními. Když se přihlásíš ke Googlu na telefonu i na počítači, Google ví, že obě zařízení patří tobě. Ale i bez přihlášení mohou použít ultrazvukové signály v reklamách k propojení zařízení ve stejné místnosti!

Behavioral tracking

Sledování způsobu, jak interaguješ s webem: rychlost psaní, pohyby myši, jak dlouho zůstáváš na stránce. Tyto vzorce chování jsou unikátní a mohou tě identifikovat.

Reklamní ekosystém

Jak funguje online reklama?

RTB (Real-Time Bidding)

Když navštívíš web s reklamou, v milisekundách proběhne aukce: web pošle požadavek reklamním sítím, ty na základě tvého profilu nabídnou ceny, vítěz zobrazí reklamu. Celé to trvá méně než 100 ms!

Retargeting

Prohlížel jsi boty na e-shopu? Teď je vidíš všude. To je retargeting – reklama na produkty, které jsi prohlížel, ale nekoupil. E-shop zaplatí, aby tě "sledoval" po internetu.

Ochrana soukromí – pokročilé nástroje

Pro ty, kteří chtějí maximální soukromí:

Tor (The Onion Router)

Tvůj provoz je šifrován a posílán přes 3 náhodné servery po celém světě. Žádný jednotlivý server nezná tvou IP a zároveň cílovou stránku. Velmi anonymní, ale pomalý.

VPN (Virtual Private Network)

Šifrovaný tunel k serveru VPN poskytovatele. Web vidí IP VPN serveru, ne tvou. Ale VPN poskytovatel může sledovat tvůj provoz – vyber důvěryhodného s no-log politikou.

Firefox Containers

Funkce Firefoxu, která izoluje různé weby do oddělených "kontejnerů". Facebook v jednom kontejneru neví, co děláš v jiném.

Browser fingerprinting - identifikace bez cookies
Browser fingerprinting - identifikace bez cookies

** Úkoly pro maturitní obory

  1. Fingerprint test: Navštiv amiunique.org nebo coveryourtracks.eff.org. Zjisti, jak unikátní je tvůj prohlížeč. Napiš zprávu.
  2. VPN analýza: Porovnej 3 VPN služby: cena, rychlost, no-log politika, země. Vytvoř tabulku v Excelu.
  3. Word – Průvodce soukromím: Napiš komplexní návod "Jak chránit soukromí online" (4-5 stran). Zahrň: prohlížeče, rozšíření, VPN, nastavení.
  4. PowerPoint – Reklamní sledování: Vytvoř prezentaci "Jak funguje online reklama" (10-12 snímků). Vysvětli RTB, cookies, profily.
  5. Canva – Plakát: Vytvoř plakát "5 kroků k ochraně soukromí online" s praktickými tipy.

*** Rozšíření pro IT obory

Jako IT specialista budeš pracovat s cookies a trackery na obou stranách – jako vývojář i jako ten, kdo chrání uživatele.

Práce s cookies v Pythonu (Flask)

from flask import Flask, request, make_response
from datetime import datetime, timedelta

app = Flask(__name__)

@app.route('/')
def index():
    # Čtení cookie
    navstevy = request.cookies.get('navstevy', '0')
    navstevy = int(navstevy) + 1

    # Vytvoření odpovědi s cookie
    resp = make_response(f"Počet návštěv: {navstevy}")

    # Nastavení cookie (platnost 30 dní)
    resp.set_cookie(
        'navstevy',
        str(navstevy),
        max_age=30*24*60*60,  # 30 dní v sekundách
        httponly=True,        # Nepřístupné z JavaScriptu
        secure=True,          # Pouze HTTPS
        samesite='Lax'        # Ochrana proti CSRF
    )

    return resp

@app.route('/souhlas')
def souhlas_cookies():
    """Uložení souhlasu s cookies (GDPR)."""
    resp = make_response("Souhlas uložen")
    resp.set_cookie('cookie_consent', 'true', max_age=365*24*60*60)
    return resp

@app.route('/smazat')
def smazat_cookies():
    """Smazání všech cookies."""
    resp = make_response("Cookies smazány")
    for cookie in request.cookies:
        resp.delete_cookie(cookie)
    return resp
        

Detekce browser fingerprint

# JavaScript pro získání fingerprintu (na straně klienta)
fingerprint_js = """
async function getFingerprint() {
    const data = {
        userAgent: navigator.userAgent,
        language: navigator.language,
        platform: navigator.platform,
        screenWidth: screen.width,
        screenHeight: screen.height,
        colorDepth: screen.colorDepth,
        timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,
        touchSupport: 'ontouchstart' in window,
        cookiesEnabled: navigator.cookieEnabled,
        plugins: Array.from(navigator.plugins).map(p => p.name),
        fonts: await detectFonts()  // Detekce nainstalovaných fontů
    };

    // Hash všech dat pro vytvoření unikátního ID
    const hash = await crypto.subtle.digest(
        'SHA-256',
        new TextEncoder().encode(JSON.stringify(data))
    );
    return Array.from(new Uint8Array(hash))
        .map(b => b.toString(16).padStart(2, '0'))
        .join('');
}
"""

# Python - zpracování fingerprintu na serveru
import hashlib
import json

def vytvor_fingerprint(data):
    """Vytvoří hash z browser dat."""
    data_string = json.dumps(data, sort_keys=True)
    return hashlib.sha256(data_string.encode()).hexdigest()

def je_stejny_uzivatel(fingerprint1, fingerprint2):
    """Porovná dva fingerprinty."""
    return fingerprint1 == fingerprint2
        

Implementace cookie banneru (GDPR)

# HTML/JavaScript pro cookie banner
cookie_banner_html = """
<div id="cookie-banner" style="
    position: fixed; bottom: 0; left: 0; right: 0;
    background: #333; color: white; padding: 20px;
    display: none; z-index: 1000;">
    <p>Používáme cookies pro zlepšení uživatelské zkušenosti.</p>
    <button onclick="acceptCookies('all')">Přijmout vše</button>
    <button onclick="acceptCookies('necessary')">Jen nezbytné</button>
    <button onclick="showSettings()">Nastavení</button>
</div>

<script>
function checkConsent() {
    if (!getCookie('cookie_consent')) {
        document.getElementById('cookie-banner').style.display = 'block';
    }
}

function acceptCookies(level) {
    setCookie('cookie_consent', level, 365);
    document.getElementById('cookie-banner').style.display = 'none';

    if (level === 'all') {
        // Inicializuj analytiku, reklamy atd.
        initAnalytics();
    }
}

window.onload = checkConsent;
</script>
"""
        

*** Praktické úkoly pro IT obory

  1. Cookie manager: Vytvoř Flask aplikaci s GDPR-kompatibilním cookie bannerem a správou souhlasů.
  2. Fingerprint analyzer: Napiš skript, který sbírá browser fingerprint data a ukládá je do databáze pro analýzu.
  3. Privacy audit: Analyzuj populární web pomocí Developer Tools - jaké cookies používá, jaké trackery, jaká data sbírá.
  4. Anti-tracking: Vytvoř prohlížečové rozšíření, které blokuje známé tracking domény.

*** Rozšíření pro IT obory: Logging a bezpečný monitoring

Jako IT specialista musíš implementovat logging tak, aby pomáhal při debuggingu, ale nenarušoval soukromí.

Co logovat a co NE

✅ Logovat ❌ NELOGOVAT
Čas požadavku Hesla (ani zahashovaná!)
HTTP metoda a URL Čísla kreditních karet
Status kód odpovědi Rodná čísla, zdravotní data
User ID (ne jméno!) Plné IP adresy (anonymizuj)
Chybové zprávy Session tokeny, API klíče

Bezpečné logování v Pythonu

import logging
import re

# Vlastní filter pro maskování citlivých dat
class SensitiveDataFilter(logging.Filter):
    PATTERNS = [
        (r'password["\']?\s*[:=]\s*["\']?[\w]+', 'password=***'),
        (r'api_key["\']?\s*[:=]\s*["\']?[\w-]+', 'api_key=***'),
        (r'\b\d{16}\b', '****-****-****-****'),  # Kreditní karty
        (r'[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}', '***@***.***'),
    ]

    def filter(self, record):
        message = record.getMessage()
        for pattern, replacement in self.PATTERNS:
            message = re.sub(pattern, replacement, message, flags=re.IGNORECASE)
        record.msg = message
        record.args = ()
        return True

# Konfigurace loggeru
logger = logging.getLogger('app')
logger.addFilter(SensitiveDataFilter())

# Příklad
logger.info("Login user_id=123 password=tajne123")
# Výstup: Login user_id=123 password=***
        

Anonymizace IP adres

import hashlib

def anonymizuj_ip(ip_adresa, salt="tajny_salt"):
    """Anonymizuje IP adresu pro GDPR compliance."""
    # Možnost 1: Odstranění posledního oktetu
    casti = ip_adresa.split('.')
    casti[-1] = '0'
    anonymni_ip = '.'.join(casti)

    # Možnost 2: Hash (pokud potřebuješ identifikovat unikátní uživatele)
    hash_ip = hashlib.sha256((ip_adresa + salt).encode()).hexdigest()[:16]

    return anonymni_ip, hash_ip

ip = "192.168.1.123"
anon, hashed = anonymizuj_ip(ip)
print(f"Původní: {ip}")
print(f"Anonymní: {anon}")  # 192.168.1.0
print(f"Hash: {hashed}")   # a1b2c3d4e5f6...
        

Retence dat - automatické mazání

from datetime import datetime, timedelta
import os
import glob

def smaz_stare_logy(log_dir, max_stari_dni=90):
    """Smaže log soubory starší než X dní (GDPR compliance)."""
    hranice = datetime.now() - timedelta(days=max_stari_dni)
    smazano = 0

    for log_soubor in glob.glob(os.path.join(log_dir, '*.log')):
        cas_modifikace = datetime.fromtimestamp(os.path.getmtime(log_soubor))

        if cas_modifikace < hranice:
            os.remove(log_soubor)
            smazano += 1
            print(f"Smazáno: {log_soubor}")

    return smazano

# Spouštěj jako cron job nebo scheduled task
smaz_stare_logy('/var/log/myapp/', max_stari_dni=90)
        

*** Další úkoly pro IT obory

  1. Secure logger: Implementuj logger s filtrováním citlivých dat.
  2. Log rotation: Nastav automatickou rotaci a mazání logů.
  3. GDPR export: Napiš funkci, která exportuje všechna data o uživateli z logů.
← Zpět na obsah