Prejsť na obsah

Nastavenia súborov cookie

Vyberte, aké druhy súborov cookie povolíte. Svoj výber môžete kedykoľvek zmeniť cez Nastavenia súborov cookie v dolnej časti každej stránky. Vyhlásenie o ochrane osobných údajov

Nevyhnutné

Vždy zapnuté

Potrebné na prihlásenie, uchovanie košíka a zapamätanie vašich volieb. Sú vždy zapnuté.

Ktoré súbory cookie?
  • weboke_sessie, weboke_klant, weboke_remember: vaša relácia a trvalé prihlásenie
  • weboke_basket: váš košík
  • wkBtwIncl: zobrazovanie cien s DPH alebo bez DPH
  • wok_cookies: váš výber súborov cookie, 12 mesiacov

Merajú, ktorá reklama vedie k návšteve alebo objednávke, aby sme neplatili za reklamy, ktoré nič neprinášajú.

Ktoré súbory cookie?
  • Google Ads cez Google Tag Manager (_gcl_au, _gcl_aw), najviac 90 dní
  • OpenAI Ads, reklamy v ChatGPT
  • wok_aff: ktorý partner vás k nám odporučil (partnerský program), 60 dní

4,6

Krajina a jazyk

Každá krajina má vlastný web s cenami a DPH danej krajiny.

Zobraziť

Prihlasovanie: heslá, dvojfaktorové overenie a brute force

Modul 7: Zabezpečenie · Čas čítania: 9 minút

Cieľ lekcie: Po tejto lekcii dokážete zabezpečiť prihlasovanie na svojej stránke silnými heslami, dvojfaktorovým overením a obmedzením pokusov o prihlásenie, a budete vedieť, čo je xmlrpc.php.

Kľúčové pojmy: správca hesiel, heslová fráza, jedinečné heslo, dvojfaktorové overenie (2FA, TOTP), passkey, brute force, obmedzenie pokusov o prihlásenie, wp-login.php na IP adresu, xmlrpc.php, unikajúce používateľské mená (REST, ?author=), aplikačné heslá

Heslo: dlhé a jedinečné

Dobré heslo má dve vlastnosti:

  1. Dlhé: dĺžka je dôležitejšia ako zvláštne znaky. Heslová fráza zo štyroch až piatich náhodných slov (sito-tucniak-oktober-lampas) je silnejšia a lepšie zapamätateľná ako W8w00rd!. Odporúča sa jedinečné heslo s minimálne 12 znakmi, najlepšie vo forme heslovej frázy.
  2. Jedinečné: nikde inde nepoužité. Credential stuffing (lekcia 7.1) funguje len vtedy, ak heslo znovu použijete.

Nikto si nepamätá desiatky dlhých jedinečných hesiel. Preto používajte správcu hesiel: program, ktorý ich za vás vytvára, uchováva a vypĺňa. Potom si musíte zapamätať iba jedno: heslo do samotného správcu, ktoré zabezpečíte aj dvojfaktorovým overením.

Či sa vaše heslo nachádza v známom úniku dát, môžete overiť na haveibeenpwned.com. Ak sa vaša e-mailová adresa nachádza v úniku, zmeňte heslo pri každej službe, kde ste rovnaké heslo použili.

Dvojfaktorové overenie

Pri dvojfaktorovom overení (2FA) potrebujete pri prihlásení okrem hesla ešte niečo navyše: zvyčajne šesťmiestny kód z aplikácie v telefóne (autentifikátor podľa štandardu TOTP). Útočník s vaším heslom sa tak dnu ešte nedostane.

WordPress nemá dvojfaktorové overenie zabudované. Pridáte ho pluginom. Existuje ich veľa; jednoduchým je Two Factor, vytvorený prispievateľmi samotného WordPressu. Majú ho na palube aj bezpečnostné pluginy. Pri výbere dbajte na:

  • TOTP aplikácie a záložné kódy (pre prípad straty telefónu); kódy cez e-mail sú slabšie, pretože aj poštová schránka môže byť hacknutá;
  • možnosť vynútiť ho pre administrátorov a redaktorov;
  • passkeys: prihlásenie odtlačkom prsta, tvárou alebo bezpečnostným kľúčom, bez hesla. Existujú na to aj pluginy. Passkeys sú odolné voči phishingu, pretože fungujú iba na skutočnej stránke.

Zapnite dvojfaktorové overenie aj na všetkom, čo je okolo vašej stránky: hostingový panel, e-mail, registrátora a správcu hesiel. Útočník, ktorý prevezme váš hostingový panel, nepotrebuje vaše heslo do WordPressu.

Brute force a obmedzenie pokusov o prihlásenie

Otvorená stránka WordPress dostáva celý deň pokusy o prihlásenie na wp-login.php, často s menom admin a zoznamami bežne používaných hesiel. S dlhým heslom a 2FA sa dnu nedostanú, no každý pokus stojí váš server výpočtový výkon (úplné spustenie WordPressu). Pri veľkej vlne sa stránka spomalí.

WordPress sám počet pokusov neobmedzuje. Čo pomáha, v poradí od „zastaviť čo najskôr“:

  1. Na serveri: mnohí hostingoví poskytovatelia blokujú IP adresu, ktorá v krátkom čase urobí veľa neúspešných pokusov, ešte pred spustením WordPressu (pomocou firewallu alebo funkcie webového servera). Opýtajte sa svojho poskytovateľa hostingu, čo sa deje.
  2. wp-login.php iba pre vašu IP adresu: niekoľkými riadkami v súbore .htaccess (pri LiteSpeed a Apache):
<Files wp-login.php>
Require ip 192.0.2.10
</Files>

Toto funguje dobre, ak máte pevnú IP adresu. Ak ju nemáte (doma, v telefóne), tak sa pri zmene svojej adresy sami odrežete. Alternatívou je ďalšie heslo na prihlasovacej stránke (tzv. „chránený priečinok“, basic authentication) s iným heslom, než je vaše heslo do WordPressu.

  1. Plugin na obmedzenie pokusov: po piatich neúspešných pokusoch je IP adresa na čas zablokovaná. Funguje, ale až keď WordPress už beží, takže výpočtová záťaž zostáva.

Skrytie alebo premenovanie prihlasovacej stránky (napríklad /moj-login namiesto /wp-login.php) znižuje šum vo vašom protokole. Nejde o skutočné zabezpečenie a niektoré pluginy a témy očakávajú štandardnú adresu. Je to v poriadku ako doplnok, nikdy ako náhrada silného hesla a 2FA.

xmlrpc.php

xmlrpc.php je staré rozhranie z čias pred REST API, cez ktoré s WordPressom komunikujú aplikácie a iné stránky. Stále ho používajú niektoré aplikácie, Jetpack a pár prepojení. Pre väčšinu stránok je zbytočné.

Útočníci majú radi xmlrpc.php, pretože v ňom možno v jednej požiadavke vyskúšať stovky hesiel naraz (pomocou funkcie system.multicall), a pretože sa dá zneužiť na útoky na iné stránky (pingbacky). Čo môžete urobiť:

  • Ak ho nepoužívate: zablokujte ho. Niektorí poskytovatelia hostingu, vrátane WebOké, blokujú xmlrpc.php štandardne na serveri. Inak riadkom v .htaccess alebo bezpečnostným pluginom.
  • Ak ho používate (napríklad pre aplikáciu, ktorá ho potrebuje): nechajte ho otvorený, ale zabezpečte silné heslá, 2FA a obmedzenie pokusov. Moderné aplikácie zvyčajne používajú REST API s aplikačným heslom (lekcia 3.3).

Unikajúce používateľské mená

V lekcii 3.3 ste videli, že WordPress zobrazuje odvodeninu z používateľských mien:

  • https://example.com/?author=1 presmeruje na /author/<meno>/;
  • https://example.com/wp-json/wp/v2/users zobrazí zoznam slugov všetkých, ktorí niečo publikovali.

Je to problém? Používateľské meno nie je heslo. S dlhým jedinečným heslom a 2FA na tom veľmi nezáleží. No dáva to útočníkovi polovicu prihlasovacích údajov a uľahčuje cielený phishing. Rozumné opatrenia:

  • dajte administrátorom používateľské meno, ktoré nie je ich verejným menom, a nepublikujte pod administrátorským účtom (lekcia 3.3);
  • obmedzte zoznam používateľov v REST API bezpečnostným pluginom alebo niekoľkými riadkami kódu, ak ho nepotrebujete. Nezatvárajte REST API úplne: blokový editor a mnohé pluginy ho potrebujú.

Aplikačné heslá

Aplikačné heslá (lekcia 3.3) sú bezpečný spôsob, ako dať aplikácii alebo systému prístup, no obchádzajú vaše dvojfaktorové overenie: aplikácia s aplikačným heslom nepotrebuje kód. Vytvárajte ich iba keď je to nutné, pri účte s nízkou rolou, a zrušte ich, keď prepojenie prestanete používať.

Zhrnutie

  • Používajte dlhé, jedinečné heslá (heslové frázy) v správcovi hesiel.
  • Zapnite dvojfaktorové overenie, pluginom vo WordPresse a aj na hostingovom paneli, e-maile a u registrátora.
  • Zastavte pokusy o prihlásenie čo najskôr: na serveri, IP pravidlom alebo ďalším heslom, alebo pluginom.
  • Zablokujte xmlrpc.php, ak ho nepoužívate.
  • Uniknuté používateľské mená nie sú katastrofa, ale varovanie: nepublikujte ako administrátor a obmedzte zoznam používateľov v REST API, ak ho nepotrebujete.

Kvíz

1. Ktoré heslo je najsilnejšie?



2. Prečo je xmlrpc.php obľúbený medzi útočníkmi?



3. Obmedzíte wp-login.php na IP adresu vašej kancelárie. Aké je riziko?



4. Je premenovanie prihlasovacej stránky na tajnú adresu dostatočné zabezpečenie?



Úloha

Úloha A7.3: Čo vaša stránka prezrádza pri prihlasovaní? Zadajte adresu svojej stránky a preukážte, že ide o vašu vlastnú stránku (kódom úlohy, ako TXT záznam alebo ako súbor). Program skontroluje tri veci: či xmlrpc.php vracia zoznam funkcií (otvorené) alebo je zablokovaný, či /wp-json/wp/v2/users zobrazuje používateľské mená (slugy), a kam presmeruje /?author=1. Vyplňte, či xmlrpc.php potrebujete; ak nie, otvorené xmlrpc.php bude označené červenou. Uniknuté slugy sú oranžové s vysvetlením.

Úloha A7.3: Čo prezrádza vaša webová stránka pri prihlasovaní?

Táto kontrola si vyžaduje cesty, ktoré necháte overiť len pri vlastnej webovej stránke. Najprv kliknite na „Zobraziť môj kód“ a tento kód vložte ako TXT záznam na _weboke-cursus.<vaša doména> alebo ako súbor na vašu webovú stránku (pozrite si vysvetlenie pri kóde).



Čo vyplníte a čo nájdeme, neukladáme. Váš prehliadač si pamätá vaše odpovede a to, či ste úlohu splnili. Po prihlásení si v sekcii Moje kurzy uchovávame iba to, že úloha bola (takmer) správne vyriešená; aj to tam môžete odstrániť.

Úloha D7.3: Zapnutie dvojfaktorového overenia. Zapnite dvojfaktorové overenie pre všetkých administrátorov vašej stránky WordPress, a tiež na vašom hostingovom paneli a e-maile. Uložte si záložné kódy do správcu hesiel. Pri každej časti zaznačte, že je zapnutá, a poznamenajte si, ktorú metódu používate (aplikácia, passkey, e-mail) a kde sa nachádzajú záložné kódy. Poznamenajte si tiež, ako extra chránite wp-login.php a prečo ste sa pre tento spôsob rozhodli.

Úloha D7.3: Zapnutie dvojfaktorového overenia

Túto úlohu vykonávate sami, nikto ju nekontroluje. Odškrtnite, čo ste urobili, a označte úlohu ako splnenú.




Vaše zaškrtnutia a poznámky zostávajú iba v tomto prehliadači, nikam ich neposielame. Po prihlásení si v sekcii Moje kurzy uchovávame iba to, že ste úlohu splnili.

Ďalšie čítanie

Tieto články popisujú postup v paneloch WebOké; v iných paneloch to funguje podobne.

Chvíľu strpenia…

Nastavte svoje domény

Pri každej doméne nastavte nameservery, prepojenie s hostingom a to, kto bude jej vlastníkom.

Načítavajú sa vaše domény…