SlideShare a Scribd company logo
1 of 45
https://lynt.cz
WordPress – základy bezpečnosti
Vláďa Smitka
@smitka
Lynt services s.r.o.
12. 8. 2017 1
https://lynt.cz
Kdo jste?
12. 8. 2017 2
Správci serverů
• Spravuji firewall
• Nastavuji Apache/Nginx/IIS
Vývojáři
• Upravuji si šablony a pluginy v PHP
• Píšu si vlastní doplňky
Uživatelé
• Koupím šablonu, nahraji pár pluginů
• Jen si upravuji texty, zbytek řeší někdo jiný
https://lynt.cz
Na co se podíváme
12. 8. 2017 3
• Bezpečnostní návyky
• Bezpečnost WP
• Aktualizace
• Zálohování
• HTTPS
• Role ve WP
• Bezpečnostní plugin a nastavení
https://lynt.cz
Požadavky na administrátora
• Bezpečná komunikace
• Bezpečná práce s hesly
• Odolnost proti phishingu
12. 8. 2017 4
https://lynt.cz
Odposlech
12. 8. 2017 5
https://lynt.cz
Síťová komunikace
12. 8. 2017 6
https://lynt.cz
Kdo poslouchá?
• Já
• Zlí lidé na veřejných sítích
• Hacknuté routery
7% domácích routerů má kritické zranitelnosti (Eset)
• https://www.routersecurity.org/bugs.php
• Malware v PC/na serveru 
12. 8. 2017 7
https://lynt.cz12. 8. 2017 8
https://lynt.cz
Jak se bránit?
• HTTPS
– Certifikáty jsou levné,
– nebo zdarma Let‘s Encrypt (musí podporovat hosting)
• VPN
– Ideální způsob pro přihlášení do administrace
– https://protonvpn.com/
– https://lynt.cz/blog/ikev2-vpn-v-cloudu-snadno-a-
rychle
12. 8. 2017 9
https://lynt.cz
Zasílání hesla mailem
12. 8. 2017 10
https://lynt.cz
Jak mi doručit heslo?
12. 8. 2017 11
https://keybase.io/encrypt#smitka
Jednorázové šifrování: https://secure.lynt.cz/
ZIP/RAR chráněný heslem + heslo SMS
SMS
Mailem s PGP/S-MIME
https://lynt.cz
Správci hesel
• Cloud
• https://www.dashlane.com/
• https://1password.com/
• https://www.lastpass.com/
• Offline
• http://keepass.info/
12. 8. 2017 12
https://lynt.cz
Phishing
12. 8. 2017 13
https://lynt.cz12. 8. 2017 14
https://lynt.cz12. 8. 2017 15
https://lynt.cz12. 8. 2017 16
https://lynt.cz12. 8. 2017 17
Předmět: Bezpečnostní problém WEDOS Hosting [8614001612]
Datum: Wed, 20 Jul 2017 14:32:48 +0200
Od: WEDOS <hosting@wedos.com>
Komu: <ty>
Vážený zákazníku,
Na Vaší webové prezentaci tvujweb.cz založené na redakčním systému Wordpress byl
zjištěna škodlivý kód, který masivně útočí na další weby a infikuje návštěvníky.
Neprodleně nainstalujte náš antivirový plugin Wedos-WP-Antivir, který naleznete v
příloze i s návodem k instalaci. V opačném případě budeme bohužel nuceni Vaši
webovou prezentaci pozastavit.
WEDOS Internet, a.s.
https://lynt.cz12. 8. 2017 18
CSRF – neošetřené formuláře
https://lynt.cz
Zabezpečení WP
12. 8. 2017 19
Co nedělat:
• Skrývat verzi WP
• Posunout wp-config o úroveň výše
• Omezit přístup k celému wp-admin
Co se může hodit:
• Změna prefixu tabulek
• Bránit vyčítání uživatelských jmen
• Blokace XML-RPC
Co dělat:
• Aktualizovat
• Zálohovat
• Používat HTTPS
• Používat silná hesla a vhodná oprávnění
• Neprovozovat více webů ve stejném prostoru
• Omezit chybná přihlášení/blokovat přístup k wp-login.php
• Filtrovat známé útoky
• Blokovat SPAM
https://lynt.cz
Aktualizace
„Aktualizace jsou u OpenSource zásadní!“
• WP se aktualizuje sám v rámci minor verzí (3.7+)
• Lze nastavit automatické aktualizace šablon i
pluginů – větší riziko, že se něco rozbije
• Šablona musí být aktualizovatelná! (Child
Themes)
• Systémy pro správu aktualizací
12. 8. 2017 20
https://lynt.cz
MainWP
• Vyžaduje jeden vyhrazený WP web pro Dashboard:
https://cs.wordpress.org/plugins/mainwp/
• Na jednotlivé web se instaluje Child
https://wordpress.org/plugins/mainwp-child/
– Správa aktualizací
– Hromadná instalace pluginů/šablon
– Správa obsahu
– Automatické updaty vybraných pluginů a šablon
– Kontrola proti WPscan DB (https://wpvulndb.com/)
– Zálohování
12. 8. 2017 21
https://lynt.cz12. 8. 2017 22
https://lynt.cz
Další nástroje
• http://infinitewp.com/
• https://wpremote.com/
• https://managewp.com/
• https://ithemes.com/sync/
• https://jetpack.com/support/site-management/
• https://cs.wordpress.org/plugins/wp-updates-
notifier/ (notifikace o dostupných aktualizacích)
12. 8. 2017 23
https://lynt.cz
Zálohování
• Ruční – překopírování obsahu FTP a export DB
• Na hostingu – zeptejte se svého hostera, jak to
řeší
• V systémech na hromadnou zprávu
• Zálohovací plugin (BackWPup, BackWPup)
• Nastavení BackWPup - https://www.slideshare.net/vsmitka/bezpenost-
wordpress-pro-zatenky/38
• Jak často?
– Pro běžné weby 1x týdně soubory, 1x denně DB
– Je dobré mít uložený stav cca 3 měsíce zpět
12. 8. 2017 24
https://lynt.cz
HTTPS
12. 8. 2017 25
https://lynt.cz
HTTPS
12. 8. 2017 26
• Proč mít HTTPS?
– Bezpečně přenášíte data svých návštěvníků
– Nebezpečné sítě nemohou modifikovat váš obsah
– Můžete použít HTTP/2 pro vyšší výkon
– Můžete používat Google Nákupy
• Proč nemít HTTPS?
– Nevím…
„HTTPS je standard a slušnost“
https://lynt.cz
HTTPS – jak to nastavit
12. 8. 2017 27
• Oprava absolutních odkazů z http://<muj-web> na
https://<muj-web>
– WP-CLI:
wp search-replace 'http://<muj-web>' 'https://<muj-web>' -
-skip-columns=guid
– UPDATE wp_posts SET post_content = REPLACE(post_content,
'http://<muj-web>', 'https://<muj-web>')
– https://interconnectit.com/products/search-and-replace-for-
wordpress-databases/
– https://cs.wordpress.org/plugins/ssl-insecure-content-fixer/
https://lynt.cz
Přesměrování na HTTPS
• Do .htaccess
RewriteEngine on
RewriteCond %{HTTPS} !on
RewriteCond %{HTTP:X-Forwarded-Proto} !=https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,QSA,NE,L]
12. 8. 2017 28
https://lynt.cz
Problémy, které mohou nastat
• Smyčka přesměrování = v cestě je proxy server,
který dešifruje provoz – např. Flexible SSL u
CloudFlare, nebo různá řešení webhosterů:
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO'])
&& $_SERVER['HTTP_X_FORWARDED_PROTO'] ==
'https') {
$_SERVER['HTTPS']='on';
}
12. 8. 2017 29
https://lynt.cz
HTTPS - tipy
• Test, zda je vše správně nastavené
• https://www.ssllabs.com/ssltest/analyze.html
• Pokud používáte skript Search&Replace for WP,
tak ho nezapomeňte po použití smazat
• Pro podobné skripty lze použít zabezpečení
pomocí https://blocking.top
„Nový web spouštějte rovnou na HTTPS“
12. 8. 2017 30
https://lynt.cz
Oprávnění
12. 8. 2017 31
• Návštěvník (Subscriber)
– Může pouze číst obsah, editovat svůj profil. Má jednodušší práci s komentáři.
• Spolupracovník (Contributor)
– Může psát nové příspěvky, ale publikovat je může až Admin nebo Šéfredaktor.
Nemá přístup do galerie médií (může ale vkládat obrázky z externích zdrojů) –
guest blogging.
• Redaktor (Author)
– Může spravovat své příspěvky včetně správy komentářů, nahrávat soubory do
galerie médií. Nemůže pracovat se stránkami.
• Šéfredaktor (Editor)
– Může spravovat veškerý obsah – příspěvky, stránky, komentáře, kategorie, v
jeho komentářích může být javascript.
• Administrátor (Administrator)
– Může spravovat vše – obsah, pluginy, šablony, widgety.
• SuperAdministrátor (pro WP multisite) – spravuje síť webů
https://lynt.cz
Přidání práv
• Nejčastěji chceme, aby Šéfredaktor mohl
měnit widgety a menu
$role_object = get_role( 'editor' );
$role_object->add_cap( 'edit_theme_options' );
https://cs.wordpress.org/plugins/user-role-
editor/
12. 8. 2017 32
https://lynt.cz
Cross infekce
12. 8. 2017 33
Složkasweby Web1
Web2
Web3
Kam všude mají skripty přístup lze ověřit nástrojem MFB:
https://github.com/lynt-smitka/PHP-Mini-File-Browser/
https://lynt.cz
Dolování uživatelských jmen
Přímo z URL:
https://www.interval.cz/?author=1 =>
/clanky/author/admin/
Obrana:
RewriteCond %{QUERY_STRING} author=
RewriteRule ^(.*)$ %{HTTP_HOST}? [L,R=301]
12. 8. 2017 34
https://lynt.cz
Dolování 2. díl – REST API
https://www.interval.cz/wp-json/wp/v2/users
{"id":10,"name":"Aleš
Kerner","url":"http://","description":"","link":"https://www
.interval.cz/clanky/author/ales-kerner/","slug":"ales-
kerner","avatar_urls":{"24":"https://secure.gravatar.com/ava
tar/1d3beec13414cc31fc1a73433369cf99?s=24&d=wp_user_avatar&r
=g","48":"https://secure.gravatar.com/avatar/1d3beec13414cc3
1fc1a73433369cf99?s=48&d=wp_user_avatar&r=g","96":"https://s
ecure.gravatar.com/avatar/1d3beec13414cc31fc1a73433369cf99?s
=96&d=wp_user_avatar&r=g"},…
Obrana:
Filtrování REST-API: https://github.com/lynt-smitka/WP-nginx-
config/blob/master/extras/mu-plugins/lynt-enhancer.php
Povolení REST-API pouze pro přihlášené:
https://developer.wordpress.org/rest-api/using-the-rest-api/frequently-asked-
questions/#require-authentication-for-all-requests
12. 8. 2017 35
ales@kerner.cz
https://lynt.cz
Bezpečnostní plugin WordFence
• https://www.slideshare.net/vsmitka/wordfenc
e-2016
• Nejdůležitější nastavení: WordFence - Firewall
12. 8. 2017 36
https://lynt.cz
Brute Force Protection
12. 8. 2017 37
https://lynt.cz
Rate Limiting
12. 8. 2017 38
https://lynt.cz
WordFence - Options
12. 8. 2017 39
https://lynt.cz
SPAM
• https://akismet.com/ - je třeba aktivovat
• https://cs.wordpress.org/plugins/nospamnx/
• Můj mini antispam využívající (mimo jiné)
http://www.projecthoneypot.org
https://github.com/lynt-smitka/lynt-antispam
12. 8. 2017 40
https://lynt.cz
Triky
12. 8. 2017 41
https://lynt.cz
IP blokace administrace
Blokace WP-ADMIN
.htaccess ve wp-admin:
Order deny,allow
Allow from x.x.x.x
Deny from all
<Files admin-ajax.php>
Order allow,deny
Allow from all
Satisfy any
</Files>
12. 8. 2017 42
Blokace přihlašovací stránky
hlavní .htaccess:
<Files wp-login.php>
Order deny,allow
Allow from x.x.x.x
Deny from all
</Files>
https://lynt.cz
Další blokace
Blokace podezřelých POST (hlavní .htaccess)
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} .*/(wp-comments-post|wp-login|admin-ajax).php.*
RewriteCond %{HTTP_REFERER} !.*%{HTTP_HOST}.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule (.*) https://%{HTTP_HOST}/? [R=301,L]
</ifModule>
Blokace PHP v uploads (.htacces v této složce)
<FilesMatch .php$>
Order allow,deny
Deny from all
</FilesMatch>
12. 8. 2017 43
https://lynt.cz
Starší přednášky
12. 8. 2017 44
• Výkon:
– https://www.slideshare.net/vsmitka/vkon-wordpress
– https://www.slideshare.net/vsmitka/wp-vkon-a-jeho-
profilovn
• Bezpečnost:
– https://www.slideshare.net/vsmitka/nejastej-
problmy-wordpress-web
– https://www.slideshare.net/vsmitka/wordcamp-
praha-2016-bezpenost-wordpress
– https://www.slideshare.net/vsmitka/bezpenost-wp-
tipy-pro-kadho-wordcamp-praha-2015
https://lynt.cz
A to je vše, přátelé.
12. 8. 2017 45
aktualizujte, zálohujte, používejte bezpečnostní plugin, buďte opatrní

More Related Content

What's hot

Bezpečnost Wordpressu - 4. WP konference
Bezpečnost Wordpressu - 4. WP konferenceBezpečnost Wordpressu - 4. WP konference
Bezpečnost Wordpressu - 4. WP konferenceVladimír Smitka
 
Jak si (ne)nechat hacknout Wordpress stránky
Jak si (ne)nechat hacknout Wordpress stránkyJak si (ne)nechat hacknout Wordpress stránky
Jak si (ne)nechat hacknout Wordpress stránkyVladimír Smitka
 
WP výkon a jeho profilování
WP výkon a jeho profilováníWP výkon a jeho profilování
WP výkon a jeho profilováníVladimír Smitka
 
Bezpečnost WP, tipy pro každého - wordCamp Praha 2015
Bezpečnost WP, tipy pro každého - wordCamp Praha 2015Bezpečnost WP, tipy pro každého - wordCamp Praha 2015
Bezpečnost WP, tipy pro každého - wordCamp Praha 2015Vladimír Smitka
 
Sysops tipy pro lepší WP
Sysops tipy pro lepší WPSysops tipy pro lepší WP
Sysops tipy pro lepší WPVladimír Smitka
 
Wordpress_DOD
Wordpress_DODWordpress_DOD
Wordpress_DODDoubry99
 
Najčastejšie problémy WordPress webov
Najčastejšie problémy WordPress webovNajčastejšie problémy WordPress webov
Najčastejšie problémy WordPress webovVladimír Smitka
 
WordPress šablony a rychlost načítání (WordCamp Praha 2017)
WordPress šablony a  rychlost načítání (WordCamp Praha 2017)WordPress šablony a  rychlost načítání (WordCamp Praha 2017)
WordPress šablony a rychlost načítání (WordCamp Praha 2017)Martin Michálek
 
Google Tag Manager a analytika ve WordPress
Google Tag Manager a analytika ve WordPressGoogle Tag Manager a analytika ve WordPress
Google Tag Manager a analytika ve WordPressVladimír Smitka
 
Základní pluginy pro WordPress 25-6-2016
Základní pluginy pro WordPress 25-6-2016Základní pluginy pro WordPress 25-6-2016
Základní pluginy pro WordPress 25-6-2016Radek Kucera
 
WordCamp Bratislava 2019 - Cache!
WordCamp Bratislava 2019 - Cache!WordCamp Bratislava 2019 - Cache!
WordCamp Bratislava 2019 - Cache!Vladimír Smitka
 
Verzování WordPress webů (#wpkonference 11/2014)
Verzování WordPress webů (#wpkonference 11/2014)Verzování WordPress webů (#wpkonference 11/2014)
Verzování WordPress webů (#wpkonference 11/2014)Borek Bernard
 
Jak zlepšit zabezpečení čtvrtiny celého webu
Jak zlepšit zabezpečení čtvrtiny celého webuJak zlepšit zabezpečení čtvrtiny celého webu
Jak zlepšit zabezpečení čtvrtiny celého webuMichal Špaček
 
Co musíte udělat po instalaci WordPressu?, Vlastimil Ott
Co musíte udělat po instalaci WordPressu?, Vlastimil OttCo musíte udělat po instalaci WordPressu?, Vlastimil Ott
Co musíte udělat po instalaci WordPressu?, Vlastimil OttLiberix, o.p.s.
 
WordPress ve školském prostředí
WordPress ve školském prostředíWordPress ve školském prostředí
WordPress ve školském prostředíVlastimil Ott
 
Hesla a vícefaktorová autentizace ve WP
Hesla a vícefaktorová autentizace ve WPHesla a vícefaktorová autentizace ve WP
Hesla a vícefaktorová autentizace ve WPVladimír Smitka
 
10 tipů pro lepší zabezpečení WordPressu - 2. Wordpress konference Hluboká 2014
10 tipů pro lepší zabezpečení WordPressu - 2. Wordpress konference Hluboká 201410 tipů pro lepší zabezpečení WordPressu - 2. Wordpress konference Hluboká 2014
10 tipů pro lepší zabezpečení WordPressu - 2. Wordpress konference Hluboká 2014Radek Kucera
 

What's hot (20)

Bezpečnost Wordpressu - 4. WP konference
Bezpečnost Wordpressu - 4. WP konferenceBezpečnost Wordpressu - 4. WP konference
Bezpečnost Wordpressu - 4. WP konference
 
Jak si (ne)nechat hacknout Wordpress stránky
Jak si (ne)nechat hacknout Wordpress stránkyJak si (ne)nechat hacknout Wordpress stránky
Jak si (ne)nechat hacknout Wordpress stránky
 
Wordfence 2016
Wordfence 2016Wordfence 2016
Wordfence 2016
 
WP výkon a jeho profilování
WP výkon a jeho profilováníWP výkon a jeho profilování
WP výkon a jeho profilování
 
Bezpečnost WP, tipy pro každého - wordCamp Praha 2015
Bezpečnost WP, tipy pro každého - wordCamp Praha 2015Bezpečnost WP, tipy pro každého - wordCamp Praha 2015
Bezpečnost WP, tipy pro každého - wordCamp Praha 2015
 
Sysops tipy pro lepší WP
Sysops tipy pro lepší WPSysops tipy pro lepší WP
Sysops tipy pro lepší WP
 
Wordpress_DOD
Wordpress_DODWordpress_DOD
Wordpress_DOD
 
Najčastejšie problémy WordPress webov
Najčastejšie problémy WordPress webovNajčastejšie problémy WordPress webov
Najčastejšie problémy WordPress webov
 
WordPress šablony a rychlost načítání (WordCamp Praha 2017)
WordPress šablony a  rychlost načítání (WordCamp Praha 2017)WordPress šablony a  rychlost načítání (WordCamp Praha 2017)
WordPress šablony a rychlost načítání (WordCamp Praha 2017)
 
Google Tag Manager a analytika ve WordPress
Google Tag Manager a analytika ve WordPressGoogle Tag Manager a analytika ve WordPress
Google Tag Manager a analytika ve WordPress
 
Základní pluginy pro WordPress 25-6-2016
Základní pluginy pro WordPress 25-6-2016Základní pluginy pro WordPress 25-6-2016
Základní pluginy pro WordPress 25-6-2016
 
WordCamp Bratislava 2019 - Cache!
WordCamp Bratislava 2019 - Cache!WordCamp Bratislava 2019 - Cache!
WordCamp Bratislava 2019 - Cache!
 
Verzování WordPress webů (#wpkonference 11/2014)
Verzování WordPress webů (#wpkonference 11/2014)Verzování WordPress webů (#wpkonference 11/2014)
Verzování WordPress webů (#wpkonference 11/2014)
 
Jak zlepšit zabezpečení čtvrtiny celého webu
Jak zlepšit zabezpečení čtvrtiny celého webuJak zlepšit zabezpečení čtvrtiny celého webu
Jak zlepšit zabezpečení čtvrtiny celého webu
 
Co musíte udělat po instalaci WordPressu?, Vlastimil Ott
Co musíte udělat po instalaci WordPressu?, Vlastimil OttCo musíte udělat po instalaci WordPressu?, Vlastimil Ott
Co musíte udělat po instalaci WordPressu?, Vlastimil Ott
 
WordPress ve školském prostředí
WordPress ve školském prostředíWordPress ve školském prostředí
WordPress ve školském prostředí
 
WP Weekend 2018
WP Weekend 2018WP Weekend 2018
WP Weekend 2018
 
Hesla a vícefaktorová autentizace ve WP
Hesla a vícefaktorová autentizace ve WPHesla a vícefaktorová autentizace ve WP
Hesla a vícefaktorová autentizace ve WP
 
10 tipů pro lepší zabezpečení WordPressu - 2. Wordpress konference Hluboká 2014
10 tipů pro lepší zabezpečení WordPressu - 2. Wordpress konference Hluboká 201410 tipů pro lepší zabezpečení WordPressu - 2. Wordpress konference Hluboká 2014
10 tipů pro lepší zabezpečení WordPressu - 2. Wordpress konference Hluboká 2014
 
Webmeetup #3
Webmeetup #3Webmeetup #3
Webmeetup #3
 

Similar to WordPress - základy bezpečnosti

Generátory statických webů
Generátory statických webůGenerátory statických webů
Generátory statických webůMichal Doležel
 
Hledání příčin pomalého webu a jak to řešit
Hledání příčin pomalého webu a jak to řešitHledání příčin pomalého webu a jak to řešit
Hledání příčin pomalého webu a jak to řešitDesingdev
 
06 prez2(tvorba webu)
06 prez2(tvorba webu)06 prez2(tvorba webu)
06 prez2(tvorba webu)olc_user
 
Jak zrychlit WP pomocí cachovacích pluginů
Jak zrychlit WP pomocí cachovacích pluginůJak zrychlit WP pomocí cachovacích pluginů
Jak zrychlit WP pomocí cachovacích pluginůJakub Klapka
 
Nové »bezhlavé« CMS — přechod od monolitů ke službám
Nové »bezhlavé« CMS — přechod od monolitů ke službámNové »bezhlavé« CMS — přechod od monolitů ke službám
Nové »bezhlavé« CMS — přechod od monolitů ke službámJaroslav Vrána
 
Optimalizace webových aplikací
Optimalizace webových aplikacíOptimalizace webových aplikací
Optimalizace webových aplikacíVašek Purchart
 
Tomáš Poner a Vladislav Musílek, Nejlepší affiliate pluginy pro WordPress
Tomáš Poner a Vladislav Musílek, Nejlepší affiliate pluginy pro WordPressTomáš Poner a Vladislav Musílek, Nejlepší affiliate pluginy pro WordPress
Tomáš Poner a Vladislav Musílek, Nejlepší affiliate pluginy pro WordPressColpirio.com s.r.o.
 
VersionPress - jak dělat WP weby lépe
VersionPress - jak dělat WP weby lépeVersionPress - jak dělat WP weby lépe
VersionPress - jak dělat WP weby lépeBorek Bernard
 
Přístupnost a slabiny WWW stránek obcí
Přístupnost a slabiny WWW stránek obcíPřístupnost a slabiny WWW stránek obcí
Přístupnost a slabiny WWW stránek obcíJiří Napravnik
 
Rizika použití WordPressu
Rizika použití WordPressuRizika použití WordPressu
Rizika použití WordPressuSUPERKODERS
 
Webový front-end ve službách mobilního vývojáře
Webový front-end  ve službách mobilního  vývojáře Webový front-end  ve službách mobilního  vývojáře
Webový front-end ve službách mobilního vývojáře Martin Michálek
 
WordCamp Bratislava 2017 - Martin Hlaváč
WordCamp Bratislava 2017 - Martin HlaváčWordCamp Bratislava 2017 - Martin Hlaváč
WordCamp Bratislava 2017 - Martin HlaváčBrilo Team
 
Semantický web (Martin Šimko)
Semantický web (Martin Šimko)Semantický web (Martin Šimko)
Semantický web (Martin Šimko)Taste Medio
 
PHP Vysočina - WordPress - 25.10.2018
PHP Vysočina - WordPress - 25.10.2018PHP Vysočina - WordPress - 25.10.2018
PHP Vysočina - WordPress - 25.10.2018Brilo Team
 
Vytvořeno pro SEO (Designed for SEO)
Vytvořeno pro SEO (Designed for SEO)Vytvořeno pro SEO (Designed for SEO)
Vytvořeno pro SEO (Designed for SEO)Pavel Ungr
 
Pavel ungr designed_for_seo
Pavel ungr designed_for_seoPavel ungr designed_for_seo
Pavel ungr designed_for_seoH1.cz
 
Použití Next.js a Reactí UI khinihovny v aplikaci
Použití Next.js a Reactí UI khinihovny v aplikaciPoužití Next.js a Reactí UI khinihovny v aplikaci
Použití Next.js a Reactí UI khinihovny v aplikaciMartin Krištof
 

Similar to WordPress - základy bezpečnosti (20)

Generátory statických webů
Generátory statických webůGenerátory statických webů
Generátory statických webů
 
Hledání příčin pomalého webu a jak to řešit
Hledání příčin pomalého webu a jak to řešitHledání příčin pomalého webu a jak to řešit
Hledání příčin pomalého webu a jak to řešit
 
06 prez2(tvorba webu)
06 prez2(tvorba webu)06 prez2(tvorba webu)
06 prez2(tvorba webu)
 
Jak zrychlit WP pomocí cachovacích pluginů
Jak zrychlit WP pomocí cachovacích pluginůJak zrychlit WP pomocí cachovacích pluginů
Jak zrychlit WP pomocí cachovacích pluginů
 
Nové »bezhlavé« CMS — přechod od monolitů ke službám
Nové »bezhlavé« CMS — přechod od monolitů ke službámNové »bezhlavé« CMS — přechod od monolitů ke službám
Nové »bezhlavé« CMS — přechod od monolitů ke službám
 
Optimalizace webových aplikací
Optimalizace webových aplikacíOptimalizace webových aplikací
Optimalizace webových aplikací
 
Tomáš Poner a Vladislav Musílek, Nejlepší affiliate pluginy pro WordPress
Tomáš Poner a Vladislav Musílek, Nejlepší affiliate pluginy pro WordPressTomáš Poner a Vladislav Musílek, Nejlepší affiliate pluginy pro WordPress
Tomáš Poner a Vladislav Musílek, Nejlepší affiliate pluginy pro WordPress
 
VersionPress - jak dělat WP weby lépe
VersionPress - jak dělat WP weby lépeVersionPress - jak dělat WP weby lépe
VersionPress - jak dělat WP weby lépe
 
TNPW2-2014-03
TNPW2-2014-03TNPW2-2014-03
TNPW2-2014-03
 
TNPW2-2013-03
TNPW2-2013-03TNPW2-2013-03
TNPW2-2013-03
 
Joomla! na MS Windows
Joomla! na MS WindowsJoomla! na MS Windows
Joomla! na MS Windows
 
Přístupnost a slabiny WWW stránek obcí
Přístupnost a slabiny WWW stránek obcíPřístupnost a slabiny WWW stránek obcí
Přístupnost a slabiny WWW stránek obcí
 
Rizika použití WordPressu
Rizika použití WordPressuRizika použití WordPressu
Rizika použití WordPressu
 
Webový front-end ve službách mobilního vývojáře
Webový front-end  ve službách mobilního  vývojáře Webový front-end  ve službách mobilního  vývojáře
Webový front-end ve službách mobilního vývojáře
 
WordCamp Bratislava 2017 - Martin Hlaváč
WordCamp Bratislava 2017 - Martin HlaváčWordCamp Bratislava 2017 - Martin Hlaváč
WordCamp Bratislava 2017 - Martin Hlaváč
 
Semantický web (Martin Šimko)
Semantický web (Martin Šimko)Semantický web (Martin Šimko)
Semantický web (Martin Šimko)
 
PHP Vysočina - WordPress - 25.10.2018
PHP Vysočina - WordPress - 25.10.2018PHP Vysočina - WordPress - 25.10.2018
PHP Vysočina - WordPress - 25.10.2018
 
Vytvořeno pro SEO (Designed for SEO)
Vytvořeno pro SEO (Designed for SEO)Vytvořeno pro SEO (Designed for SEO)
Vytvořeno pro SEO (Designed for SEO)
 
Pavel ungr designed_for_seo
Pavel ungr designed_for_seoPavel ungr designed_for_seo
Pavel ungr designed_for_seo
 
Použití Next.js a Reactí UI khinihovny v aplikaci
Použití Next.js a Reactí UI khinihovny v aplikaciPoužití Next.js a Reactí UI khinihovny v aplikaci
Použití Next.js a Reactí UI khinihovny v aplikaci
 

More from Vladimír Smitka

Co ukázal globální scan přístupných .git repozitářů?
Co ukázal globální scan přístupných .git repozitářů?Co ukázal globální scan přístupných .git repozitářů?
Co ukázal globální scan přístupných .git repozitářů?Vladimír Smitka
 
Drobné chyby, které vám mohou zlomit vaz
Drobné chyby, které vám mohou zlomit vazDrobné chyby, které vám mohou zlomit vaz
Drobné chyby, které vám mohou zlomit vazVladimír Smitka
 
WordPress Security: Defend yourself against digital invaders
WordPress Security:Defend yourself against digital invadersWordPress Security:Defend yourself against digital invaders
WordPress Security: Defend yourself against digital invadersVladimír Smitka
 
WordPress performance tuning
WordPress performance tuningWordPress performance tuning
WordPress performance tuningVladimír Smitka
 
WordPress security for everyone
WordPress security for everyoneWordPress security for everyone
WordPress security for everyoneVladimír Smitka
 
České weby a Wordpress (Q4/2014)
České weby a Wordpress (Q4/2014)České weby a Wordpress (Q4/2014)
České weby a Wordpress (Q4/2014)Vladimír Smitka
 
Wordcamp Praha 2015 - další útržky z prezentace
Wordcamp Praha 2015 - další útržky z prezentaceWordcamp Praha 2015 - další útržky z prezentace
Wordcamp Praha 2015 - další útržky z prezentaceVladimír Smitka
 
Sítě pro malé a střední podniky 2014
Sítě pro malé a střední podniky 2014Sítě pro malé a střední podniky 2014
Sítě pro malé a střední podniky 2014Vladimír Smitka
 

More from Vladimír Smitka (11)

Co ukázal globální scan přístupných .git repozitářů?
Co ukázal globální scan přístupných .git repozitářů?Co ukázal globální scan přístupných .git repozitářů?
Co ukázal globální scan přístupných .git repozitářů?
 
Drobné chyby, které vám mohou zlomit vaz
Drobné chyby, které vám mohou zlomit vazDrobné chyby, které vám mohou zlomit vaz
Drobné chyby, které vám mohou zlomit vaz
 
Http/2 vs Image Sprites
Http/2 vs Image SpritesHttp/2 vs Image Sprites
Http/2 vs Image Sprites
 
Ansible
AnsibleAnsible
Ansible
 
WordPress Security: Defend yourself against digital invaders
WordPress Security:Defend yourself against digital invadersWordPress Security:Defend yourself against digital invaders
WordPress Security: Defend yourself against digital invaders
 
WordPress performance tuning
WordPress performance tuningWordPress performance tuning
WordPress performance tuning
 
WordPress security for everyone
WordPress security for everyoneWordPress security for everyone
WordPress security for everyone
 
České weby a Wordpress (Q4/2014)
České weby a Wordpress (Q4/2014)České weby a Wordpress (Q4/2014)
České weby a Wordpress (Q4/2014)
 
Wordcamp Praha 2015 - další útržky z prezentace
Wordcamp Praha 2015 - další útržky z prezentaceWordcamp Praha 2015 - další útržky z prezentace
Wordcamp Praha 2015 - další útržky z prezentace
 
Dijskrův algoritmus
Dijskrův algoritmusDijskrův algoritmus
Dijskrův algoritmus
 
Sítě pro malé a střední podniky 2014
Sítě pro malé a střední podniky 2014Sítě pro malé a střední podniky 2014
Sítě pro malé a střední podniky 2014
 

WordPress - základy bezpečnosti

  • 1. https://lynt.cz WordPress – základy bezpečnosti Vláďa Smitka @smitka Lynt services s.r.o. 12. 8. 2017 1
  • 2. https://lynt.cz Kdo jste? 12. 8. 2017 2 Správci serverů • Spravuji firewall • Nastavuji Apache/Nginx/IIS Vývojáři • Upravuji si šablony a pluginy v PHP • Píšu si vlastní doplňky Uživatelé • Koupím šablonu, nahraji pár pluginů • Jen si upravuji texty, zbytek řeší někdo jiný
  • 3. https://lynt.cz Na co se podíváme 12. 8. 2017 3 • Bezpečnostní návyky • Bezpečnost WP • Aktualizace • Zálohování • HTTPS • Role ve WP • Bezpečnostní plugin a nastavení
  • 4. https://lynt.cz Požadavky na administrátora • Bezpečná komunikace • Bezpečná práce s hesly • Odolnost proti phishingu 12. 8. 2017 4
  • 7. https://lynt.cz Kdo poslouchá? • Já • Zlí lidé na veřejných sítích • Hacknuté routery 7% domácích routerů má kritické zranitelnosti (Eset) • https://www.routersecurity.org/bugs.php • Malware v PC/na serveru  12. 8. 2017 7
  • 9. https://lynt.cz Jak se bránit? • HTTPS – Certifikáty jsou levné, – nebo zdarma Let‘s Encrypt (musí podporovat hosting) • VPN – Ideální způsob pro přihlášení do administrace – https://protonvpn.com/ – https://lynt.cz/blog/ikev2-vpn-v-cloudu-snadno-a- rychle 12. 8. 2017 9
  • 11. https://lynt.cz Jak mi doručit heslo? 12. 8. 2017 11 https://keybase.io/encrypt#smitka Jednorázové šifrování: https://secure.lynt.cz/ ZIP/RAR chráněný heslem + heslo SMS SMS Mailem s PGP/S-MIME
  • 12. https://lynt.cz Správci hesel • Cloud • https://www.dashlane.com/ • https://1password.com/ • https://www.lastpass.com/ • Offline • http://keepass.info/ 12. 8. 2017 12
  • 17. https://lynt.cz12. 8. 2017 17 Předmět: Bezpečnostní problém WEDOS Hosting [8614001612] Datum: Wed, 20 Jul 2017 14:32:48 +0200 Od: WEDOS <hosting@wedos.com> Komu: <ty> Vážený zákazníku, Na Vaší webové prezentaci tvujweb.cz založené na redakčním systému Wordpress byl zjištěna škodlivý kód, který masivně útočí na další weby a infikuje návštěvníky. Neprodleně nainstalujte náš antivirový plugin Wedos-WP-Antivir, který naleznete v příloze i s návodem k instalaci. V opačném případě budeme bohužel nuceni Vaši webovou prezentaci pozastavit. WEDOS Internet, a.s.
  • 18. https://lynt.cz12. 8. 2017 18 CSRF – neošetřené formuláře
  • 19. https://lynt.cz Zabezpečení WP 12. 8. 2017 19 Co nedělat: • Skrývat verzi WP • Posunout wp-config o úroveň výše • Omezit přístup k celému wp-admin Co se může hodit: • Změna prefixu tabulek • Bránit vyčítání uživatelských jmen • Blokace XML-RPC Co dělat: • Aktualizovat • Zálohovat • Používat HTTPS • Používat silná hesla a vhodná oprávnění • Neprovozovat více webů ve stejném prostoru • Omezit chybná přihlášení/blokovat přístup k wp-login.php • Filtrovat známé útoky • Blokovat SPAM
  • 20. https://lynt.cz Aktualizace „Aktualizace jsou u OpenSource zásadní!“ • WP se aktualizuje sám v rámci minor verzí (3.7+) • Lze nastavit automatické aktualizace šablon i pluginů – větší riziko, že se něco rozbije • Šablona musí být aktualizovatelná! (Child Themes) • Systémy pro správu aktualizací 12. 8. 2017 20
  • 21. https://lynt.cz MainWP • Vyžaduje jeden vyhrazený WP web pro Dashboard: https://cs.wordpress.org/plugins/mainwp/ • Na jednotlivé web se instaluje Child https://wordpress.org/plugins/mainwp-child/ – Správa aktualizací – Hromadná instalace pluginů/šablon – Správa obsahu – Automatické updaty vybraných pluginů a šablon – Kontrola proti WPscan DB (https://wpvulndb.com/) – Zálohování 12. 8. 2017 21
  • 23. https://lynt.cz Další nástroje • http://infinitewp.com/ • https://wpremote.com/ • https://managewp.com/ • https://ithemes.com/sync/ • https://jetpack.com/support/site-management/ • https://cs.wordpress.org/plugins/wp-updates- notifier/ (notifikace o dostupných aktualizacích) 12. 8. 2017 23
  • 24. https://lynt.cz Zálohování • Ruční – překopírování obsahu FTP a export DB • Na hostingu – zeptejte se svého hostera, jak to řeší • V systémech na hromadnou zprávu • Zálohovací plugin (BackWPup, BackWPup) • Nastavení BackWPup - https://www.slideshare.net/vsmitka/bezpenost- wordpress-pro-zatenky/38 • Jak často? – Pro běžné weby 1x týdně soubory, 1x denně DB – Je dobré mít uložený stav cca 3 měsíce zpět 12. 8. 2017 24
  • 26. https://lynt.cz HTTPS 12. 8. 2017 26 • Proč mít HTTPS? – Bezpečně přenášíte data svých návštěvníků – Nebezpečné sítě nemohou modifikovat váš obsah – Můžete použít HTTP/2 pro vyšší výkon – Můžete používat Google Nákupy • Proč nemít HTTPS? – Nevím… „HTTPS je standard a slušnost“
  • 27. https://lynt.cz HTTPS – jak to nastavit 12. 8. 2017 27 • Oprava absolutních odkazů z http://<muj-web> na https://<muj-web> – WP-CLI: wp search-replace 'http://<muj-web>' 'https://<muj-web>' - -skip-columns=guid – UPDATE wp_posts SET post_content = REPLACE(post_content, 'http://<muj-web>', 'https://<muj-web>') – https://interconnectit.com/products/search-and-replace-for- wordpress-databases/ – https://cs.wordpress.org/plugins/ssl-insecure-content-fixer/
  • 28. https://lynt.cz Přesměrování na HTTPS • Do .htaccess RewriteEngine on RewriteCond %{HTTPS} !on RewriteCond %{HTTP:X-Forwarded-Proto} !=https RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,QSA,NE,L] 12. 8. 2017 28
  • 29. https://lynt.cz Problémy, které mohou nastat • Smyčka přesměrování = v cestě je proxy server, který dešifruje provoz – např. Flexible SSL u CloudFlare, nebo různá řešení webhosterů: if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') { $_SERVER['HTTPS']='on'; } 12. 8. 2017 29
  • 30. https://lynt.cz HTTPS - tipy • Test, zda je vše správně nastavené • https://www.ssllabs.com/ssltest/analyze.html • Pokud používáte skript Search&Replace for WP, tak ho nezapomeňte po použití smazat • Pro podobné skripty lze použít zabezpečení pomocí https://blocking.top „Nový web spouštějte rovnou na HTTPS“ 12. 8. 2017 30
  • 31. https://lynt.cz Oprávnění 12. 8. 2017 31 • Návštěvník (Subscriber) – Může pouze číst obsah, editovat svůj profil. Má jednodušší práci s komentáři. • Spolupracovník (Contributor) – Může psát nové příspěvky, ale publikovat je může až Admin nebo Šéfredaktor. Nemá přístup do galerie médií (může ale vkládat obrázky z externích zdrojů) – guest blogging. • Redaktor (Author) – Může spravovat své příspěvky včetně správy komentářů, nahrávat soubory do galerie médií. Nemůže pracovat se stránkami. • Šéfredaktor (Editor) – Může spravovat veškerý obsah – příspěvky, stránky, komentáře, kategorie, v jeho komentářích může být javascript. • Administrátor (Administrator) – Může spravovat vše – obsah, pluginy, šablony, widgety. • SuperAdministrátor (pro WP multisite) – spravuje síť webů
  • 32. https://lynt.cz Přidání práv • Nejčastěji chceme, aby Šéfredaktor mohl měnit widgety a menu $role_object = get_role( 'editor' ); $role_object->add_cap( 'edit_theme_options' ); https://cs.wordpress.org/plugins/user-role- editor/ 12. 8. 2017 32
  • 33. https://lynt.cz Cross infekce 12. 8. 2017 33 Složkasweby Web1 Web2 Web3 Kam všude mají skripty přístup lze ověřit nástrojem MFB: https://github.com/lynt-smitka/PHP-Mini-File-Browser/
  • 34. https://lynt.cz Dolování uživatelských jmen Přímo z URL: https://www.interval.cz/?author=1 => /clanky/author/admin/ Obrana: RewriteCond %{QUERY_STRING} author= RewriteRule ^(.*)$ %{HTTP_HOST}? [L,R=301] 12. 8. 2017 34
  • 35. https://lynt.cz Dolování 2. díl – REST API https://www.interval.cz/wp-json/wp/v2/users {"id":10,"name":"Aleš Kerner","url":"http://","description":"","link":"https://www .interval.cz/clanky/author/ales-kerner/","slug":"ales- kerner","avatar_urls":{"24":"https://secure.gravatar.com/ava tar/1d3beec13414cc31fc1a73433369cf99?s=24&d=wp_user_avatar&r =g","48":"https://secure.gravatar.com/avatar/1d3beec13414cc3 1fc1a73433369cf99?s=48&d=wp_user_avatar&r=g","96":"https://s ecure.gravatar.com/avatar/1d3beec13414cc31fc1a73433369cf99?s =96&d=wp_user_avatar&r=g"},… Obrana: Filtrování REST-API: https://github.com/lynt-smitka/WP-nginx- config/blob/master/extras/mu-plugins/lynt-enhancer.php Povolení REST-API pouze pro přihlášené: https://developer.wordpress.org/rest-api/using-the-rest-api/frequently-asked- questions/#require-authentication-for-all-requests 12. 8. 2017 35 ales@kerner.cz
  • 36. https://lynt.cz Bezpečnostní plugin WordFence • https://www.slideshare.net/vsmitka/wordfenc e-2016 • Nejdůležitější nastavení: WordFence - Firewall 12. 8. 2017 36
  • 40. https://lynt.cz SPAM • https://akismet.com/ - je třeba aktivovat • https://cs.wordpress.org/plugins/nospamnx/ • Můj mini antispam využívající (mimo jiné) http://www.projecthoneypot.org https://github.com/lynt-smitka/lynt-antispam 12. 8. 2017 40
  • 42. https://lynt.cz IP blokace administrace Blokace WP-ADMIN .htaccess ve wp-admin: Order deny,allow Allow from x.x.x.x Deny from all <Files admin-ajax.php> Order allow,deny Allow from all Satisfy any </Files> 12. 8. 2017 42 Blokace přihlašovací stránky hlavní .htaccess: <Files wp-login.php> Order deny,allow Allow from x.x.x.x Deny from all </Files>
  • 43. https://lynt.cz Další blokace Blokace podezřelých POST (hlavní .htaccess) <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_METHOD} POST RewriteCond %{REQUEST_URI} .*/(wp-comments-post|wp-login|admin-ajax).php.* RewriteCond %{HTTP_REFERER} !.*%{HTTP_HOST}.* [OR] RewriteCond %{HTTP_USER_AGENT} ^$ RewriteRule (.*) https://%{HTTP_HOST}/? [R=301,L] </ifModule> Blokace PHP v uploads (.htacces v této složce) <FilesMatch .php$> Order allow,deny Deny from all </FilesMatch> 12. 8. 2017 43
  • 44. https://lynt.cz Starší přednášky 12. 8. 2017 44 • Výkon: – https://www.slideshare.net/vsmitka/vkon-wordpress – https://www.slideshare.net/vsmitka/wp-vkon-a-jeho- profilovn • Bezpečnost: – https://www.slideshare.net/vsmitka/nejastej- problmy-wordpress-web – https://www.slideshare.net/vsmitka/wordcamp- praha-2016-bezpenost-wordpress – https://www.slideshare.net/vsmitka/bezpenost-wp- tipy-pro-kadho-wordcamp-praha-2015
  • 45. https://lynt.cz A to je vše, přátelé. 12. 8. 2017 45 aktualizujte, zálohujte, používejte bezpečnostní plugin, buďte opatrní

Editor's Notes

  1. Kdo ma vps/hosting, kdo ma bezpecnosnti plugin, kdo resil incident
  2. Kdo ma vps/hosting, kdo ma bezpecnosnti plugin, kdo resil incident