3. https://lynt.cz @smitka Odkazy: https://u.lynt.cz/wcba
Popis webu
28. 4. 2018 3
14 100 výsledků,
reálně jsem nalezl
722 webů (1,2%)
Slovenský internet dle VS:
• 290 000 webů
• 13 000 mimo sk doménu
• 60 000 WP webů (20%)
4. https://lynt.cz @smitka Odkazy: https://u.lynt.cz/wcba
Nekontrolované komentáre
• Ahoj svet - zapomenutý příspěvek - /?p=1
• Vhodné použít antispam plugin
– Akismet (je nutné ho aktivovat!)
– NoSpamNX
– Experimentální: https://github.com/lynt-
smitka/lynt-antispam
28. 4. 2018 4
Výchozí příspěvek je na
13 700 webech (23%),
9 500 webů (16%) na něm
má povoleny komentáře
5. https://lynt.cz @smitka Odkazy: https://u.lynt.cz/wcba
SEO Pluginy
• Na mnoha webech je nainstalován SEO plugin bez
jakéhokoliv nastavení a není aktivně využíván
• K čemu SEO plugin slouží?
– Generuje sitemapu
– Přidává mikrodata (lze částečně řešit v šabloně)
– Nastavuje vazby ve stránkovaném obsahu (lze řešit v šabloně)
– Doplňuje meta tagy pro sociální sítě (lze řešit v šabloně)
– Upravuje podobu titulků (lze řešit v šabloně)
– Upravuje povolení indexace jednotlivých příspěvků (většinou
není třeba)
– Upravuje meta description příspěvků (což může přinést více
škody než užitku, když se to neudělá správně)
28. 4. 2018 5
Yoast SEO:
16 500 webů (28%)
AiO SEO Pack:
5 250 webů (9%)
6. https://lynt.cz @smitka Odkazy: https://u.lynt.cz/wcba
Analytika
• Pokud již řešíte SEO a marketing, musíte vědět
co se na webu děje = mít nasazené analytické
nástroje
• Google Analytics – vložení pluginem, ručně do
šablony nebo pomocí functions.php
• Google Tag Manager -
https://cs.wordpress.org/plugins/duracelltomi
-google-tag-manager/
28. 4. 2018 6
GA chybí na 56% webů.
GTM je použit na 8% webů
7. https://lynt.cz @smitka Odkazy: https://u.lynt.cz/wcba
GA kód ve functions.php/pluginu
function lynt_add_ga() { ?>
//zde vlozit merici kod
<?php }
add_action('wp_footer', 'lynt_add_ga');
28. 4. 2018 7
8. https://lynt.cz @smitka Odkazy: https://u.lynt.cz/wcba
Pár tipov do GA
28. 4. 2018 8
https://github.com/lynt-smitka/WP-nginx-config/blob/master/extras/mu-plugins/lynt-team-cookie.php
9. https://lynt.cz @smitka Odkazy: https://u.lynt.cz/wcba
Odosielanie e-mailov
• Odesílání mailů je často nevhodně nastavené
• V základu je používána php funkce mail()
• Na sdíleném hostingu může mít IP adresa
špatnou reputaci – infekce jiných webů, zasílání
newsletterů
• Lepší je nastavit vlastní SMTP server a ideálně
pro newslettery používat specializované služby
• https://cs.wordpress.org/plugins/wp-mail-smtp/
• https://cs.wordpress.org/plugins/postman-smtp/
28. 4. 2018 9
11. https://lynt.cz @smitka Odkazy: https://u.lynt.cz/wcba
Maily z kontaktních formulářů
(např. Contact Form 7)
28. 4. 2018 11
Problém se SPF (sender policy framework) =
odesílání jménem domény je omezeno jen na
vybrané IP adresy.
Pro odpověď je nutné použít Reply-To hlavičku.
12. https://lynt.cz @smitka Odkazy: https://u.lynt.cz/wcba
Overenie funkčnosti e-mailov
• Zaslání testovacího mailu na adresu vygenerovanou na
https://www.mail-tester.com/
• Poslání mailu z WP:
– WP CLI shell: wp_mail($komu, $co, $zprava);
– https://github.com/lynt-smitka/lynt-mail-tester
• Mail není spolehlivá forma komunikace, je vhodné
výstupy z kontaktních formulářů ukládat i jinak
– Pro CF7 - https://wordpress.org/plugins/flamingo/
28. 4. 2018 12
17. https://lynt.cz @smitka Odkazy: https://u.lynt.cz/wcba
22% webů není aktuálních
28. 4. 2018 17
https://lynt.cz/blog/wordpress-v-cz-velky-pruzkum
7% Slovenských webů je
postiženo chybou ve verzi
4.9.3, která rozbila autoupdate
18. https://lynt.cz @smitka Odkazy: https://u.lynt.cz/wcba
Aktualizácie
• Ohromné množství webů nemá aplikovány
aktualizace WP, pluginů a šablon
"Každý opensource je třeba
pravidelně aktualizovat!"
• WP updates notifier
• Systémy pro hromadnou správu
28. 4. 2018 18
19. https://lynt.cz @smitka Odkazy: https://u.lynt.cz/wcba
Systémy pre hromadnú správu
• MainWP
• Infinite WP
• WP Remote
• Manage WP
28. 4. 2018 19
„Pokud spravujete více než 2
weby, používejte systém pro
hromadnou správu!“
20. https://lynt.cz @smitka Odkazy: https://u.lynt.cz/wcba
Child themes
Nikdy neupravujte šablonu přímo! *
(pokud není na míru/nejedná o starter theme)
• Řešením je vytvořit „child theme“ – nová složka
šablony, kde jsou jen změněné soubory z
rodičovské
• https://www.wplama.cz/jak-vytvorit-child-
theme-a-proc-ji-vyuzivat/
28. 4. 2018 20
21. https://lynt.cz @smitka Odkazy: https://u.lynt.cz/wcba
Ako na vlastné úpravy?
• functions.php v child theme
• Vlastní plugin:
– /wp-content/plugins/moje-upravy/moje-upravy.php
<?php
/*
Plugin Name: Moje upravy
*/
…kod…
28. 4. 2018 21
22. https://lynt.cz @smitka Odkazy: https://u.lynt.cz/wcba
Príliš vysoká užívateľské práva
• Nejčastější důvod – menu a widgety může
editovat pouze admin
$role_object = get_role( 'editor' );
$role_object->add_cap( 'edit_theme_options' );
https://cs.wordpress.org/plugins/user-role-
editor/
28. 4. 2018 22
23. https://lynt.cz @smitka Odkazy: https://u.lynt.cz/wcba
Více webů v jednom prostoru
na hostingu/VPS
28. 4. 2018 23
Složkasweby
Web1
Web2
Web3
https://github.com/lynt-smitka/PHP-Mini-File-Browser/blob/master/mfb.php
Websupport 25483 (43%)
VNET 7626 (13%)
LightStorm 4060 (7%)
BENESTRA 3927 (7%)
Yegon 2465 (4%)
WEDOS 1889 (3%)
ACTIVE 24 1504 (3%)
24. https://lynt.cz @smitka Odkazy: https://u.lynt.cz/wcba
HTTPS
• 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…
28. 4. 2018 24
HTTPS používá pouze 28%
slovenských WP webů!
25. https://lynt.cz @smitka Odkazy: https://u.lynt.cz/wcba
Nastavenie HTTPS
28. 4. 2018 25
WP vytváří absolutní odkazy, v DB tak zůstanou odkazy na HTTP obsah.
http://<muj-web> => https://<muj-web>
Je dobré přesměrovat dotazy z HTTP na HTTPS a nastavit HSTS hlavičku.
https://u.lynt.cz/htaccess
26. https://lynt.cz @smitka Odkazy: https://u.lynt.cz/wcba
Mixed Content
• UPDATE wp_posts SET post_content = REPLACE(post_content,
'http://<muj-web>', 'https://<muj-web>')
+ ručně upravit nastavení (např. widgety, menu)
• WP CLI:
wp search-replace 'http://<muj-web>' 'https://<muj-web>'
--skip-columns=guid
• https://interconnectit.com/products/search-and-replace-for-
wordpress-databases/ (+ omezení přístupu https://blocking.top)
• https://cs.wordpress.org/plugins/ssl-insecure-content-fixer/
(nedoporučuji, pouze když není jiná možnost)
28. 4. 2018 26
27. https://lynt.cz @smitka Odkazy: https://u.lynt.cz/wcba
Nastavenie HTTPS
• Test, zda je vše správně nastavené
• https://www.ssllabs.com/ssltest/analyze.html
• Let's Encrypt certifikát je OK
• Smyčka přesměrování u reverzní proxy (např. CloudFlare při Flexible SSL)
• if (
isset( $_SERVER['HTTP_X_FORWARDED_PROTO']) &&
'https'== $_SERVER['HTTP_X_FORWARDED_PROTO']
) {
$_SERVER['HTTPS']='on';
}
"Nový web spouštějte rovnou na HTTPS"
28. 4. 2018 27
28. https://lynt.cz @smitka Odkazy: https://u.lynt.cz/wcba28. 4. 2018 28
„ Keď spustíš nový web bez HTTPS,
zomrie jednorožec!!!“
29. https://lynt.cz @smitka Odkazy: https://u.lynt.cz/wcba
Citlivé informácie
• Verze WP - zbytečné ji skrývat
– https://lynt.cz/blog/verze-wordpress-skryvat-nebo-ne
• Uživatelská jména
– /?author=1
– /wp-json/wp/v2/users
• Zobrazování chybový hlášek - Full Path Disclosure
(FPD)
– /wp-includes/rss-functions.php
• Výpisy adresářů (index)
• Přístup do .git!!!
28. 4. 2018 29
60% umožňuje jednoduše vyčítat uživatele
58% zobrazuje chybové hlášky
5% umožňuje vypisovat obsah adresářů
0,2% (117) umožňuje stáhnout zdrojáky z .git
30. https://lynt.cz @smitka Odkazy: https://u.lynt.cz/wcba
Bežná heslá
• admin/admin
28. 4. 2018 30
1431404857
• <login>/<login>
• password
• heslo
• 12345,6,8
"Používejte generovaná hesla z password manageru a neopakujte je"
Uživatelské jméno admin
používá 27% webů
31. https://lynt.cz @smitka Odkazy: https://u.lynt.cz/wcba
Hesla
28. 4. 2018 31
GTX 1050 MD5 PHPASS (MD5) Bcrypt
Hash/s 5 863 MH/s 1 880 kH/s 3 959 H/s
Doba louskání -
8 znaků
35 s 31 hod 610 dní
Typ hesla Počet kombinací
6 znaků (malá písmena) 308 915 776
8 znaků 208 827 064 576
8 znaků + čísla 2 821 109 907 456
8 znaků (velká/malá) + čísla 218 340 105 584 896
8 znaků (v/m) + čísla + speciál 6 634 204 312 890 625
Bcrypt ve WP:
https://github.com/lynt-smitka/WP-nginx-config/blob/master/extras/mu-plugins/lynt-enhancer.php
32. https://lynt.cz @smitka Odkazy: https://u.lynt.cz/wcba
Zálohovanie
28. 4. 2018 32
Čím?
• Updraft Plus
• BackWPup
• BackupBuddy
• VaultPress
• Vlastní řešení
https://lynt.cz/blog/zalohovani-serveru-
do-cloudu-pomoci-restic
Kam?
• S3, DO Spaces, B2
• Azure, Google Cloud Storage
• Amazon Glacier
• Dropbox, OneDrive
• SFTP
Čo keď polícia zabaví všetky servery vášho webhostera?
Jak často a na jak dlouho?
Databáze
1x denně, 1-3 měsíce zpět (GDPR)
Soubory
1x týdně, několik měsíců zpět
individuálně pro wp-content/uploads
34. https://lynt.cz @smitka Odkazy: https://u.lynt.cz/wcba
Mnoho zbytočných pluginov
• Více pluginů = větší nároky na správu a snížený
výkon
• Větší riziko bezpečnostních chyb
• Vliv pluginů – test na VPS serveru 1core, 4GB:
– Čistý WP: 16 požadavků/s
– WP + CF7 + JetPack + WPML + Yoast SEO + Slider
revolution: 3 požadavky/s
28. 4. 2018 34
35. https://lynt.cz @smitka Odkazy: https://u.lynt.cz/wcba
„Zbytečné“ pluginy
• Neaktivovaný Akismet
• Ikonky sociálních sítí - lepší udělat staticky v
šabloně – nemění se
– https://gist.github.com/lynt-
smitka/6455e769b7e2497d3451db663ddaa48c
• Slidery – opět lepší staticky, pokud není třeba
často je aktualizovat
• Pluginy s duplicitní funkcionalitou
28. 4. 2018 35
36. https://lynt.cz @smitka Odkazy: https://u.lynt.cz/wcba
Kde je problém?
28. 4. 2018 36
• Zjištění, zda pomalost způsobují skripty na straně
serveru nebo až načítání zdrojů – Waterfall
(vodopádový graf)
• https://gtmetrix.com/
• http://www.webpagetest.org/
• https://tools.pingdom.com/
• F12 - Devel konzole prohlížeče
• Nutno volit co nejbližší lokalitu
38. https://lynt.cz @smitka Odkazy: https://u.lynt.cz/wcba
Načítanie zdrojov
• Expires hlavičky, Gzip textových souborů (i SVG!)
• https://u.lynt.cz/htaccess
• Sprity, data-uri (pro SVG není třeba base64!), Lazy loading
"Nejlepší HTTP požadavek je žádný požadavek"
• HTTP/2
• TLS 1.3
• CDN
28. 4. 2018 38
39. https://lynt.cz @smitka Odkazy: https://u.lynt.cz/wcba
Obrázky
• Velké množství
• Zbytečně rozměrné
• Neoptimalizované – velká velikost
• https://tinypng.com/ - vyzkoušejte
• https://wordpress.org/plugins/shortpixel-image-optimiser/
• https://cs.wordpress.org/plugins/tiny-compress-images/
• https://cs.wordpress.org/plugins/ewww-image-optimizer/
28. 4. 2018 39
40. https://lynt.cz @smitka Odkazy: https://u.lynt.cz/wcba
Fonty
• Opravdu potřebujete mít na webu
Google/Typekit font?
• Bezpečné fonty
• Řezy a znakové sady:
čím více, tím větší zdržení načítání
• https://yellowlab.tools/
28. 4. 2018 40
42. https://lynt.cz @smitka Odkazy: https://u.lynt.cz/wcba
Hľadanie pomalého pluginu / šablóny
• P3 profiler
• Query Monitor
• Blackfire.io
• Nejčastější problémy:
– Mnoho dotazů do DB (nemělo by jich být více než 35)
– Komunikace s externími službami (např. špatně udělaná kontrola
dostupnosti update) - častý problém prémiových šablon a
pluginů
– „Zacyklené“ shortkódy
28. 4. 2018 42
45. https://lynt.cz @smitka Odkazy: https://u.lynt.cz/wcba
Cachovánie
28. 4. 2018 45
• Disková cache – Linux využívá volnou RAM pro
rychlejší přístup k souborům = je dobré mít hodně RAM
• OP code cache – PHP do RAM ukládá zpracovaný PHP
kód (PHP 5.6+, starší s rozšířením)
• Transientní cache – při použití WP ukládá výsledky
složitých operací do DB
(https://codex.wordpress.org/Transients_API)
• Objektová cache – ukládá výsledky složitých operací do
jiného úložiště – lze použít jako úložiště pro transienty
– je třeba podpora serveru a drop-in do WP
(Memcache, Redis, Xcache, APCu)
46. https://lynt.cz @smitka Odkazy: https://u.lynt.cz/wcba
Cachovánie
28. 4. 2018 46
• Stránková cache – uloží výsledek pracování
skriptu do statického souboru – např. WP
SuperCache, W3 Total Cache, WP-Rocket
• Proxy – reverzní na straně serveru/„dopředná“ na
straně lokální sítě – ukládá statický soubor aby se
nemusel znova stahovat/generovat (varnish,
nginx microcache/squid)
• Cache prohlížeče – řídí se expires hlavičkami,
pokud nejsou, snaží se je odvodit (většinou podle
stáří souboru)
47. https://lynt.cz @smitka Odkazy: https://u.lynt.cz/wcba
Úlohy na zajtra
Aktualizujte
Zazálohujte
Otestujte rychlost webu
Otestujte odesílání e-mailů
Ověřte konfiguraci HTTPS
28. 4. 2018 47