Lozinka više nije dovoljna. Phishing, brute force, leakovi sa stranica koje su pukle prije 5 godina, password reuse — sve to znači da svaki ozbiljan sustav u 2026 mora imati drugi faktor autentikacije. Ovo je praktičan vodič što 2FA znači, koje metode su sigurne, i kako implementirati u WP, cPanel i Laravel.
Što je 2FA i zašto je obavezan
2FA (Two-Factor Authentication) = login zahtijeva dva nezavisna dokaza identiteta:
- Faktor 1: nešto što znaš — lozinka.
- Faktor 2: nešto što imaš — telefon (TOTP kod), hardware key (YubiKey), passkey (WebAuthn).
- Treći faktor: nešto što jesi (biometrija — fingerprint, Face ID). Tehnički MFA, ali u praksi se često koristi kao zamjena za faktor 2.
Bez 2FA, ako ti netko sazna lozinku — ulazi. S 2FA, mora imati i drugi faktor (koji ne može phishati ili pogoditi).
2FA metode — od najslabije do najjače
1. SMS kodovi (slabo, izbjegavaj)
Server šalje 6-znamenkasti kod na telefon, korisnik upiše. Problem: SIM swap napadi, SS7 ranjivosti, telefon presretnut. NIST je još 2017 deprekovao SMS za sigurnu autentikaciju.
Verdict: bolje od ničeg, ali ne za admin pristup.
2. TOTP (Google Authenticator, Authy, 1Password) — solid baseline
Time-based One-Time Password (RFC 6238). App generira 6-znamenkasti kod koji se mijenja svakih 30 sekundi. Funkcionira offline. Standard koji svaki ozbiljan sustav podržava.
Sigurno protiv većine napada, osim aktivnog phishinga (napadač zarobi i lozinku i TOTP u realnom vremenu).
Apps: Google Authenticator, Microsoft Authenticator, Authy (sync između uređaja), 1Password, Bitwarden, Aegis (open-source).
Verdict: minimum za sve admin sustave.
3. Push notifikacije (Duo, Microsoft Authenticator)
Server pošalje push na app, korisnik tapne "Approve". UX bolji od TOTP-a. Ali "MFA fatigue" napadi (spam pusheva dok korisnik ne tapne "Approve" iz frustracije) — zato bolji sustavi traže "number matching" (upiši broj koji vidiš na ekranu).
Verdict: dobar za enterprise.
4. Hardware keys (YubiKey, SoloKey, Google Titan) — phishing-proof
FIDO2/WebAuthn standard. USB ili NFC ključ koji potpiše challenge kriptografski. Phishing-proof jer ključ provjerava domenu — ako si na phish-domeni, ključ ne potpiše.
Cijena: 25-70 EUR po ključu. Uvijek imaj 2 (jedan backup u sefu).
Verdict: gold standard za admin i developer pristup.
5. Passkeys (WebAuthn na uređaju)
FIDO2 spremljen na uređaju (iPhone, Mac, Android, Windows Hello), sync kroz iCloud Keychain ili Google Password Manager. Korisnik se autenticira biometrijom — Face ID, fingerprint. Bez lozinke uopće.
Verdict: budućnost. Apple, Google i Microsoft jako guraju.
2FA za WordPress
Pluginovi
- Wordfence Login Security — free, TOTP, dobro integrirano s Wordfence security. Recovery codes. Force 2FA za odabrane role.
- WP 2FA (Melapress) — najpotpuniji free + Pro. TOTP, email, recovery codes, force za role, grace period za nove korisnike. Pro: white-label, FIDO2/WebAuthn.
- Two-Factor — open-source od WordPress core kontributora. TOTP, email, recovery codes, U2F. Solid, minimalan.
- iThemes Security Pro — uključuje 2FA + ostale security features.
Praktičan setup (WP 2FA primjer)
- Instaliraj plugin.
- Settings → odaberi metode (TOTP + email backup + recovery codes).
- Force za role: Administrator, Editor (svi koji mogu mijenjati sadržaj/postavke).
- Grace period: 7 dana (korisnici imaju tjedan da postave 2FA, nakon toga blok).
- Recovery codes: 10 jednokratnih kodova — korisnik ih mora spremit u password manager.
Application Passwords za REST API
2FA blokira REST API integracije (Zapier, app koji se logira). Rješenje: WordPress core ima Application Passwords (Users → Profile → Application Passwords). Generiraj poseban password za svaku integraciju, koristi taj umjesto glavnog.
2FA za cPanel
cPanel ima ugrađeni TOTP 2FA — server admin (WHM) ga može uključiti per-user ili force za sve.
- WHM → Security Center → Two-Factor Authentication → Manage My Account.
- Klijent loginom u cPanel → search "Two-Factor Authentication" → Set Up Two-Factor Authentication.
- Skeniraj QR kod TOTP appom.
- Upiši 6-znamenkasti kod za potvrdu.
- Spremi recovery kod.
WHM admin može force 2FA za sve cPanel korisnike — preporuka za hostere koji žele podići baseline sigurnosti.
2FA za Laravel
Laravel ima više opcija ovisno o starteru:
- Laravel Fortify — backend za 2FA, password reset, etc. Frontend slobodan (Blade ili API). Iz boxa: TOTP + recovery codes.
- Laravel Jetstream — full-stack scaffolding s 2FA UI-jem (Livewire ili Inertia).
- Laravel Breeze — minimal, treba dodati 2FA paket (npr.
pragmarx/google2fa-laravel).
Fortify TOTP setup
composer require laravel/fortify
php artisan vendor:publish --provider="Laravel\Fortify\FortifyServiceProvider"
php artisan migrate
U config/fortify.php uključi Features::twoFactorAuthentication([...]). Korisnik kroz profile route enable-a 2FA, sustav vraća QR kod + recovery codes.
WebAuthn (passkeys) u Laravel
Paket: laragear/webauthn. Implementacija složenija od TOTP-a (challenge/response, registration ceremonija, authentication ceremonija) ali UX puno bolji — korisnik se logira Face ID-jem ili YubiKeyom bez lozinke.
Recovery codes — ne zaboravi ih
Ako korisnik izgubi telefon, 2FA ga zaključa van. Recovery codes (10 jednokratnih dugačkih kodova) su izlaz iz tog problema. Mora ih spremit u password manager ili printano u sefu.
Bez recovery codes-a, jedini izlaz je admin reset kroz bazu (DELETE FROM wp_usermeta WHERE meta_key LIKE '%two_factor%' AND user_id = X). To je manualan i sporo.
Usporedba metoda
| Metoda | Sigurnost | UX | Cijena | Phishing-proof? |
|---|---|---|---|---|
| SMS | slabo | OK | SMS troškovi | ne |
| TOTP | solid | OK | besplatno | ne |
| Push (Duo) | dobro | odlično | ~3 EUR/user/mj | djelomično |
| Hardware key | vrhunsko | odlično | 25-70 EUR jednokratno | DA |
| Passkey | vrhunsko | vrhunsko | besplatno | DA |
Praktičan plan implementacije
- Admin pristup (WP admin, cPanel, server SSH): hardware key ili passkey. TOTP kao fallback s recovery codes.
- Editori i sadržajni korisnici: TOTP obavezan, force kroz plugin/policy.
- Krajnji korisnici sajta (e-commerce): opcionalan TOTP/passkey, jako preporučen ali ne force-an (jer ćeš izgubit konverzije).
- API/integracije: Application Passwords ili API tokens (ne 2FA).
- Service accounti (deployment, CI/CD): SSH ključevi + IP whitelist, nikad password.
WMD i 2FA
Svi WMD hosting accounti dolaze sa cPanel TOTP 2FA opcionalno, force 2FA za WHM admin pristup. Za klijente s WordPress hostingom predinstaliramo WP 2FA plugin i postavimo force 2FA za admin role po želji. Za Laravel klijente postavljamo Fortify s TOTP-om. Hardware key (YubiKey) trening i setup uključeni u onboarding za enterprise klijente.
FAQ
Što ako korisnik izgubi telefon? Recovery code → reset. Ako nema recovery, admin briše 2FA iz baze ili kroz cPanel.
Authy ili Google Authenticator? Authy sinkronizira između uređaja (lakše ako mijenjaš telefon). Google Authenticator je lokalan (sigurniji, ali izgubiš sve ako izgubiš telefon bez backupa).
Smije li TOTP isti kod servirat dvama korisnicima? Nikad. Svaki korisnik ima svoj secret. Dijeljenje secreta = dijeljenje accounta = ne dijeli.
Kolika je razlika između TOTP-a i passkey-a u sigurnosti? Passkey je phishing-proof (ključ ne potpiše krivi domain), TOTP nije. Razlika je veća nego što zvuči — passkey eliminira cijelu klasu napada.
Kako prisilit klijenta na 2FA? Force u sustavu (WP 2FA plugin → Mandatory 2FA), grace period, jasna komunikacija mjesec dana ranije.
Treba ti pomoć s 2FA implementacijom? WMD podržava setup TOTP, push, i hardware key za WordPress, cPanel i Laravel. Javi se preko kontakt forme.