Session cookie nemá Secure flag
Čo to je
Vaše stránky nastavujú cookie (typicky PHPSESSID, laravel_session, _ga, atď.) bez Secure flagu. Prehliadač ju bude posielať aj cez nešifrované HTTP, kedykoľvek na to má príležitosť.
Prečo je to problém
Útočník, ktorý má prístup k sieti medzi vami a používateľom (Wi-Fi v kaviarni, kompromitovaný router, ISP v krajine s aktívnym sledovaním), môže:
- Odpočúvať cookie a prevziať session.
- Donútiť prehliadač navštíviť
http://example.skcez nesúvisiaci HTTP odkaz a zachytiť cookie tam.
Aj keď máte HTTPS všade, bez Secure stačí, aby mal používateľ v inom tabe otvorený ľubovoľný HTTP web na rovnakej doméne, a cookie unikne.
Ako to opraviť
Cieľom je nastaviť všetky tri bezpečnostné flagy: Secure, HttpOnly a SameSite.
Session cookies (najdôležitejšie)
PHP:
# php.ini (nebo .htaccess s php_value)
session.cookie_secure = 1
session.cookie_httponly = 1
session.cookie_samesite = "Lax"Node.js (express-session):
app.use(session({
secret: process.env.SESSION_SECRET,
cookie: {
secure: true,
httpOnly: true,
sameSite: 'lax',
maxAge: 1000 * 60 * 60 * 24,
}
}));Laravel (config/session.php):
'secure' => true,
'http_only' => true,
'same_site' => 'lax',WordPress: WordPress rieši session cez cookies, ale auto-pridanieSecure nemá. Použite plugin Cookies Flags alebo pridajte ručne:
// wp-config.php
define('COOKIE_DOMAIN', '.example.cz');
@ini_set('session.cookie_secure', 1);
// functions.php
add_action('init', function () {
if (!is_ssl()) return;
foreach ($_COOKIE as $name => $val) {
setcookie($name, $val, [
'expires' => 0,
'path' => '/',
'secure' => true,
'httponly' => true,
'samesite' => 'Lax',
]);
}
});Cookies tretích strán (analytika, retargeting)
Cookies, ktoré nastavujú tretie strany (Google Analytics, _fbp, atď.), neovládate. Uistite sa aspoň, že ich nastavujete na https:// stránke — tretia strana potom štandardne pridá Secure flag.
Overenie
DevTools → Application → Cookies. Pozrite sa na stĺpec Secure — má byť true pri všetkých cookies, ktoré nesú nejakú autentizáciu.