Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Najčastejšie problémy WordPress webov

2,211 views

Published on

přednáška z WordCamp Bratislava 2018

Published in: Technology
  • Login to see the comments

Najčastejšie problémy WordPress webov

  1. 1. https://lynt.cz @smitka Odkazy: https://u.lynt.cz/wcba Najčastejšie problémy WordPress webov Vláďa Smitka vladimir.smitka@lynt.cz @smitka Lynt services s.r.o.
  2. 2. https://lynt.cz @smitka Odkazy: https://u.lynt.cz/wcba Drobné problémiky 28. 4. 2018 2
  3. 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. 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. 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. 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. 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. 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. 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
  10. 10. https://lynt.cz @smitka Odkazy: https://u.lynt.cz/wcba SMTP bez pluginu function lynt_phpmailer( PHPMailer $mail ) { $mail->Host = 'smpt.server'; $mail->Port = 465; $mail->SMTPSecure = 'tls'; $mail->Username = 'jmeno'; $mail->Password = 'heslo'; $mail->SMTPAuth = true; $mail->IsSMTP(); } add_action( 'phpmailer_init', 'lynt_phpmailer' ); Více nastavení v dokumentaci: https://github.com/PHPMailer/PHPMailer 28. 4. 2018 10
  11. 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. 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
  13. 13. https://lynt.cz @smitka Odkazy: https://u.lynt.cz/wcba Bežné problémy • Špatný Return Path: • https://github.com/lynt-smitka/WP-nginx- config/blob/master/extras/mu-plugins/lynt- mailfixer.php • Špatné nastavení SPF • Neexistující MX server • Špatný reverzní záznam serveru (musí vyřešit hoster) • Blacklistovaná IP 28. 4. 2018 13
  14. 14. https://lynt.cz @smitka Odkazy: https://u.lynt.cz/wcba Bezpečnosť 28. 4. 2018 14
  15. 15. https://lynt.cz @smitka Odkazy: https://u.lynt.cz/wcba Základy bezpečnosti • Pravidelné aktualizace • Limitace chybných přihlášení (je vhodné využívat bezpečnostní plugin - WordFence) • Silná hesla + správce hesel (KeePass, LastPass) • Správná práva souborů i uživatelů • Šifrované připojení – HTTPS, VPN • Pravidelné zálohy DB i souborů webu 28. 4. 2018 15
  16. 16. https://lynt.cz @smitka Odkazy: https://u.lynt.cz/wcba28. 4. 2018 16 4%Rozbitý autoupdate!
  17. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 28. https://lynt.cz @smitka Odkazy: https://u.lynt.cz/wcba28. 4. 2018 28 „ Keď spustíš nový web bez HTTPS, zomrie jednorožec!!!“
  29. 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. 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. 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. 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
  33. 33. https://lynt.cz @smitka Odkazy: https://u.lynt.cz/wcba Výkon 28. 4. 2018 33
  34. 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. 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. 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
  37. 37. https://lynt.cz @smitka Odkazy: https://u.lynt.cz/wcba Waterfall 28. 4. 2018 37 < 2s < 800kB < 50
  38. 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. 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. 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
  41. 41. https://lynt.cz @smitka Odkazy: https://u.lynt.cz/wcba Diakritika 28. 4. 2018 41 <link href="https://fonts.googleapis.com/css?family =Roboto:400,700&subset=latin-ext" rel="stylesheet">
  42. 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
  43. 43. https://lynt.cz @smitka Odkazy: https://u.lynt.cz/wcba28. 4. 2018 43
  44. 44. https://lynt.cz @smitka Odkazy: https://u.lynt.cz/wcba28. 4. 2018 44 Cachování OP code cache Transientní cache Stránková cache Cache prohlížeče Objektová cache Disková cache Proxy cache
  45. 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. 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. 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
  48. 48. https://lynt.cz @smitka Odkazy: https://u.lynt.cz/wcba Mé starší přednášky • 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/wordcamp- praha-2016-bezpenost-wordpress – https://www.slideshare.net/vsmitka/bezpenost- wp-tipy-pro-kadho-wordcamp-praha-2015 28. 4. 2018 48
  49. 49. https://lynt.cz @smitka Odkazy: https://u.lynt.cz/wcba28. 4. 2018 49 aktualizujte, zálohujte, používejte bezpečnostní plugin, buďte opatrní A to je vše, přátelé. Reklamní vsuvka: Děláte s PPC? Sledujte https://twitter.com/PPCrobot Děláte v Pythonu? PPC Robot hledá vývojáře ;-)
  50. 50. https://lynt.cz @smitka Odkazy: https://u.lynt.cz/wcba Bonus: 30 najpoužívanejších šablón 28. 4. 2018 50 Šablona Počet Šablona Počet Šablona Počet Divi 1734 Twenty Twelve 465 Twenty Fifteen 308 Avada 1597 Twenty Sixteen 436 Impreza 303 Twenty Seventeen 1324 Twenty Fourteen 360 Storefront 300 Enfold 1046 Bridge 354 Salient 277 mioweb 1026 Twenty Eleven 347 Vantage 276 betheme 866 Newspaper 347 Spacious 230 Refur 752 Twenty Ten 327 Porto 230 The7 752 Customizr 321 Jupiter 227 Sydney 551 Twenty Thirteen 316 Kallyas 210 Zerif-lite 480 Flatsome 313 Hestia 167

×