Download - WordPress Professional II
WORDPRESS PROFESSIONAL IISEBASTIAN BLUM
WORDPRESS PROFESSIONAL II
AGENDA WORDPRESS PROFESSIONAL II
▸ Security
▸ Aktuelle Lage ▸ Best Practices
Automatische Updates und Zugriffsbeschränkung
▸ Environment
▸ Themes ▸ Custom Post Types ▸ (Micro-) Plug-Ins
WORDPRESS SECURITYTEIL 1
!
IT macht Arbeit nicht billiger, sondern in der Regel nur schneller. Wenn man Geschwindigkeit nicht immer benötigt, sollte man auf IT auch mal verzichten können.
Klemens Kowalski, kowabit.de
WORDPRESS SECURITY
WORDPRESS SECURITY AKTUELLE LAGE
WORDPRESS SECURITY: AKTUELLE LAGE
RANSOMWARE BEFÄLLT NUTZER ÜBER EXPLOIT KITS
▸ TeslaCryptSchwachstellen in veralteten CMS / WordPress-Installation
▸ Befall des Besuchers über Exploit Kitsnutzt Lücken in Adobe Flash Player, Internet Explorer und Adobe Acrobat (Reader)
▸ Verschlüsselt alle Dateien (lokale und in Netzwerkfreigaben)→ Gefahr für Nutzer mit veralteter Software → Regelmäßig Updates und Security-Fixes installieren
WORDPRESS SECURITY: AKTUELLE LAGE
WORDPRESS AUF 26% ALLER INTERNETSEITEN
▸ Oftmals …
▸ … kein HTTPS für Backend (WP-Admin)
▸ … Standardbenutzer und einfache Passwörter
▸ … (zu viele) Plug-Ins aktiviert
WORDPRESS SECURITY: AKTUELLE LAGE
RANSOMWARE BEFÄLLT AUCH WEBSERVER
WORDPRESS SECURITY: AKTUELLE LAGE
RANSOMWARE BEFÄLLT AUCH WEBSERVER
▸ CTB-Locker„Your personal files are encrypted by CTB-Locker. Your scripts, documents, photos, databases and other important files have been encrypted with strongest encryption algorithm AES-256 and unique key, generated for this site.“→ Wiederherstellung (bisher) unmöglich→ Externe Backups regelmäßig erstellen
WORDPRESS SECURITY AUTOMATISCHE UPDATES
WORDPRESS SECURITY: AUTOMATISIERTE UPDATES
PROBLEM
▸ WordPress Core und Plug-Ins sollten regelmäßig aktualisiert werden
▸ Theoretisch kein Problem:WordPress kann automatisch aktualisieren
▸ Automatische Updates benötigen Schreibrechte für PHPoder FTP-Zugang→ keine Absicherung bei Angriffen
WORDPRESS SECURITY: AUTOMATISIERTE UPDATES
LÖSUNG
▸ Unix-Rechteverwaltung sinnvoll nutzenStandardwerte: Ordner = 755, Dateien = 644
▸ 7 6 4 rwx rwx rwxBesitzer Gruppe Sonstige
▸ Live-Modus
▸ Rechte Ordner (chmod 555), Rechte Dateien (444)→ PHP kann keine Dateien / Ordner schreiben
WORDPRESS SECURITY: AUTOMATISIERTE UPDATES
LÖSUNG
▸ Update-Modus
▸ Rechte Dateien / Ordner (777) → PHP kann Dateien / Ordner schreiben und ausführen
▸ Vorgehen
▸ Rechte werden nur für die Zeit der Updates gesetzt
▸ Benutzer können zusätzlich angepasst werden, jedoch
▸ Einschränkungen beim Shared Hosting ▸ PHP-CGI-Prozesse laufen oftmals mit Standardbenutzer
WORDPRESS SECURITY: AUTOMATISIERTE UPDATES
UMSETZUNG
▸ Shared-Hosting mit Cronjobs und SSH
▸ all-inkl: ab Premium-Paket ▸ domainfactory: ab Professional-Paket ▸ STRATO: ab PowerWeb Plus
▸ Eigener Server
▸ Cronjobs über crontab ▸ Jobs mit Jenkins (continuous integration)
WORDPRESS SECURITY: AUTOMATISIERTE UPDATES
UMSETZUNG
▸ Update-Modus aktivieren
▸ Live-Modus aktivieren
cd/var/wwwchmod-R0777./wordpress
cd/var/wwwfind./wordpress-typed-execchmod0555{}\;find./wordpress-typef-execchmod0444{}\;find./wordpress/wp-content/cache-typed-execchmod0755{}\;find./wordpress/wp-content/cache-typef-execchmod0655{}\;find./wordpress/wp-content/uploads-typed-execchmod0755{}\;find./wordpress/wp-content/uploads-typef-execchmod0644{}\;
WORDPRESS SECURITY: AUTOMATISIERTE UPDATES
UMSETZUNG
▸ WP-CLI herunterladen
▸ Updates installieren
cd~curl-Ohttps://raw.githubusercontent.com/wp-cli/builds/gh-pages⤸/phar/wp-cli.pharchmod+xwp-cli.phar
./wp-cli.pharcoreupdate--path=/var/www/wordpress(--debug)
./wp-cli.pharcoreupdate-db--path=/var/www/wordpress
./wp-cli.pharpluginupdate--all--path=/var/www/wordpress
./wp-cli.pharthemeupdate--all--path=/var/www/wordpress
WORDPRESS SECURITY: AUTOMATISIERTE UPDATES
ÜBER DEN TELLERRAND
▸ Zusätzliche ÜberprüfungTools suchen nach SchwachstellenWPScan: http://wpscan.org/wprecon: http://wprecon.com/
▸ Jens Altmann Samstag Vortrag: Secure your company
WORDPRESS SECURITY ZUGRIFFSBESCHRÄNKUNG
WORDPRESS SECURITY: ZUGRIFFSBESCHRÄNKUNG
.HTACCESS-DATEIEN BEI APACHE-WEBSERVER
▸ Ordner-Auflistung deaktivieren
▸ Direktzugriff nur für bestimmte Dateitypen erlauben
OptionsAll-Indexes
Orderdeny,allowDenyfromall<Files~".(css|doc|docx|gif|jpe?g|js|odf|pdf|png|rar|rtf|xls|xlsx|⤸xml|zip)$">Allowfromall</Files>
WORDPRESS SECURITY: ZUGRIFFSBESCHRÄNKUNG
.HTACCESS-DATEIEN BEI APACHE-WEBSERVER
▸ Login nur nach Passworteingabe
▸ Zugriff auf wp-includes Ordner blockieren
<Fileswp-login.php>AuthTypeBasicAuthName"RestrictedAdmin-Area"AuthUserFile/pfad/zur/.htpasswdRequirevalid-user</Files>
<IfModulemod_rewrite.c>RewriteEngineOnRewriteBase/RewriteRule^wp-admin/includes/-[F,L]RewriteRule!^wp-includes/-[S=3]RewriteRule^wp-includes/[^/]+\.php$-[F,L]</IfModule>
WORDPRESS SECURITY: ZUGRIFFSBESCHRÄNKUNG
.HTACCESS-DATEIEN BEI APACHE-WEBSERVER
▸ Zugriff auf wp-config.php blockieren
▸ Zugriff auf .htaccess-Dateien blockieren<files~"^.*\.([Hh][Tt])">Orderallow,denyDenyfromallSatisfyall</files>
<fileswp-config.php>Orderallow,denyDenyfromall</files>
WORDPRESS SECURITY: LEARNINGS
ZUSAMMENFASSUNG
▸ Möglichst wenig (Schreib-) Rechte für Web-Server
▸ Updatebarkeit ist Schutz und Risiko gleichzeitig
▸ Externe Backups notwendig
▸ Dateien: ohne Schreibrechte für Web-Server ▸ Datenbank: komplette Dumps
▸ Schwächstes Glied in Kette beachten!
WORDPRESS ENVIRONMENTTEIL 2
"
WORDPRESS PROFESSIONAL II
AGENDA WORDPRESS PROFESSIONAL II
▸ Security
▸ Aktuelle Lage ▸ Best Practices
Automatische Updates und Zugriffsbeschränkung
▸ Environment
▸ Themes ▸ Custom Post Types ▸ (Micro-) Plug-Ins
WORDPRESS ENVIRONMENTTHEMES
VORTRAG 2015: WORDPRESS PROFESSIONAL I
RÜCKBLICK: LETZTES JAHR
▸ Unterscheidungen von
▸ Default-Themes ▸ Starter-Themes ▸ Child-Themes ▸ Vollwertige Themes
▸ Den jeweiligen Einsatzzweck
WORDPRESS ENVIRONMENT: THEMES - THEME OPTIONS
THEME OPTIONS: DESIGN ANPASSEN
▸ Wechsel zwischen Themes, die alle Theme Options unterstützen, sollte möglich sein (Beispiel: Jedes Theme von wordpress.com)
▸ Ziel: Optionen Theme-übergreifend zu standardisieren
▸ Viele Themes verwenden eigenes Theme Panel→ Theme-Wechsel nur schwer möglich
VERWENDUNG DER THEME OPTIONS
VERWENDUNG EINES THEME PANELS
THEME UNIT TESTSWORDPRESS ENVIRONMENT – THEMES
WORDPRESS ENVIRONMENT: THEMES - UNIT TESTS
THEME UNIT TESTS
▸ Theme Unit Tests sind möglich
▸ Verbessern deutlich die Qualität von Themes
▸ Mehr Infos unter:https://codex.wordpress.org/Theme_Unit_Test
Theme Plug-In
Vorteile ‣ Stabiler, dank getesten Versionen
‣ Schnellere Updates ‣ Theme-Wechsel
Nachteile ‣ Abhängigkeit vom Theme
‣ Theme-Lock-In
‣ Updates ‣ Versionskonflikte ‣ Namenkonflikte
WORDPRESS ENVIRONMENT: THEMES
FUNKTIONALITÄT IN THEME ODER PLUG-IN
WORDPRESS ENVIRONMENT: FAZIT THEMES
FAZIT: FUNKTIONALITÄT IN THEMES
▸ Elegant Themes bringen die Funktionalität im Theme mit
▸ Eigener Page-Builder: Divi Builder ▸ Verwendung der Theme Options → guter Lösungsansatz
▸ Präferieren selbst die Funktionalität in Plug-Ins
▸ Probleme mit Visual Composer Versionskonflikten ▸ Lock-In bei Custom-Post-Types im Theme→ Trennung ermöglicht größere Flexibilität
WORDPRESS ENVIRONMENTCUSTOM POST TYPE
WORDPRESS ENVIRONMENT: CUSTOM POST TYPE
CUSTOM POST TYPE
▸ Einfach selbst definieren mit Hilfe eines kleinen Plug-Ins
▸ Bringt zusätzliche Dokumentarten mit
▸ Im Child-Theme können Template-Dateien speziell für den Custom-Post-Type erstellt werden
BEISPIELBILDUNG FÜR FLÜCHTLINGE
WORDPRESS ENVIRONMENT: CUSTOM POST TYPE
BILDUNG-FUER-FLUECHTLINGE.DE
▸ Organisationen mit zusätzlichen Informationen speichern
▸ Kontaktdaten (Auswahl und Textfelder) ▸ Ansprechpartner (Foto) ▸ Standort (Google Maps Karte) ▸ Bereich (Kategorie)
▸ Ausgabe der (gefilterten) Inhalte im Frontend
WORDPRESS ENVIRONMENT: CUSTOM POST TYPE
BILDUNG-FUER-FLUECHTLINGE.DE: BACKEND
▸ Auswahl
▸ Textfeld
▸ Bild-Upload
▸ Standort (Google Maps)
WORDPRESS ENVIRONMENT: CUSTOM POST TYPE
BILDUNG-FUER-FLUECHTLINGE.DE: FRONTEND
▸ Kontaktdaten
▸ Standort (Google Maps)
WORDPRESS ENVIRONMENT: FAZIT CUSTOM POST TYPES
FAZIT: CUSTOM POST TYPES
▸ Eigene „Dokument-Arten“ mit zusätzlichen Feldern
▸ Bessere semantische Datenspeicherung ▸ Updatebarkeit ohne Inhaltsanpassung ▸ Mit Shortcodes in Widgets platzierbar→ guter Lösungsansatz
▸ Am besten Custom Post Types Definition & Custom Taxonomy selbst mit einem Plugin erstellen
▸ AdvancedCustomFields-Plugin für Verwaltung zusätzlicher Felder im Backend nutzen
WORDPRESS ENVIRONMENT(MICRO-) PLUG-INS
WORDPRESS ENVIRONMENT: (MICRO-) PLUG-INS
EINFACHE MICRO-PLUG-INS
▸ Beispiel: sblum-force-httpsAlle verlinkten / verknüpften Inhalte über HTTPS abrufen
▸ Single Responsibility Pattern→ Bietet exakt eine Funktionalität
▸ Einfache Unit-Tests
▸ Keine Konfiguration, keine eierlegende Wollmilchsau
Quelle: Pixelrausch - Wikimedia Commons
WORDPRESS ENVIRONMENT: (MICRO-) PLUG-INS
SBLUM-FORCE-HTTPS PLUG-IN
▸ Einsatz-Zweck: Umstellung auf HTTPS
▸ Problemstellung
▸ Im Theme / Plug-in werden http:// Assets eingebunden ▸ Interne http-Links in Artikeln
▸ Lösung: Interne Links, CSS, Javascript durch https ersetzen→ Micro-Plug-in für genau diese Anforderung ausreichend
WORDPRESS ENVIRONMENT: (MICRO-) PLUG-INS
SBLUM-FORCE-HTTPS PLUG-IN
WORDPRESS ENVIRONMENT: (MICRO-) PLUG-INS
MUST-USE-PLUGIN: FINAL OUTPUT HOOK
WORDPRESS ENVIRONMENT: FAZIT PLUGINS
FAZIT: PLUG-INS
▸ Einsatz von Micro-Plug-Ins, wenn…
▸ ein Problem zu 100% gelöst werden kann ▸ Performance wichtig (keine aufwendige Konfiguration)
▸ Einsatz von (umfangreichen) Plug-Ins, wenn…
▸ eine Vielzahl von Anforderungen erfüllt werden ▸ Yoast SEO Plug-In ▸ W3 Total Cache
▸ Konfiguration / Anpassung notwendig
WORDPRESS PROFESSIONAL II
DANKE FÜR DIE AUFMERKSAMKEIT
▸ Sebastian Blum [email protected]
▸ Präsentation auf unserer Webseite# https://www.sblum.de/seocampixx