{"id":114,"date":"2008-01-21T11:53:55","date_gmt":"2008-01-21T10:53:55","guid":{"rendered":"http:\/\/wordpress-buch.bueltge.de\/wordpress-sicherer-machen\/30\/"},"modified":"2008-01-21T11:53:55","modified_gmt":"2008-01-21T10:53:55","slug":"wordpress-sicherer-machen","status":"publish","type":"post","link":"https:\/\/bueltge.de\/wordpress-buch\/wordpress-sicherer-machen\/","title":{"rendered":"WordPress sicherer machen"},"content":{"rendered":"<p><img decoding=\"async\" class=\"alignright\" src=\"https:\/\/bueltge.de\/wordpress-buch\/files\/2007\/07\/wordpress-login-1281.png\" alt=\"WP Login\" \/><\/p>\n<p>Ein Thema, welches ich im Buch leider vernachl\u00e4ssigt habe, ist das Thema Sicherheit. Dieses Thema ist aber immer relevanter, gerade weil WordPress immer popul\u00e4rer wird und damit auch immer interessanter f\u00fcr Hacker und Andere, die sich unbefugt Zutritt zu einer Web-Applikationen geben wollen.<\/p>\n<p>Nicht zuletzt ist der Artikel also eine Aufforderung vieler Leser, die mir per E-Mail oder Online-Rezension, einen Hinweis darauf hinterlassen habe und denen ich mit diesem Artikel ein wenig helfen m\u00f6chte, ihre WordPress-Installation sicherer zu machen.<\/p>\n<p>Kurz &amp; Knapp &#8211; so werde ich also im folgenden einige Tipps f\u00fcr ein sicheres Weblog mit WordPress geben.<!--more--><\/p>\n<blockquote><p>Sicherheit &#8211; einen Zustand, der frei von unvertretbaren Risiken der Beeintr\u00e4chtigung ist oder als gefahrenfrei angesehen wird.<\/p><\/blockquote>\n<p><cite><a href=\"http:\/\/de.wikipedia.org\/wiki\/Sicherheit\">Wikipedia<\/a><\/cite><\/p>\n<p>Aber Achtung, damit will und kann ich nicht die Eigenverantwortung des jeweiligen Administrators herabsetzen oder abnehmen. Das Thema wird immer wieder pr\u00e4sent sein und die Sicherheitsregeln werden sich \u00e4ndern. Nichtsdestotrotz kann man mit einigen wenigen Schritten die Installation recht sicher gestallten.<\/p>\n<ol>\n<li>\n<h3>User-Name<\/h3>\n<p>Nach jeder Installation ist der Standard-User-Name des Administrators <em>admin<\/em>. Diese Login-Name geh\u00f6rt als erstes ge\u00e4ndert. Dieser Login-Name ist bekannt und sorgt daf\u00fcr, dass eine unberechtigte Person nur noch an einem Wort t\u00fcfteln muss &#8211; dem Zugangspasswort. Mit einem eigenen Login-Namen erh\u00f6ht man die Sicherheit des Systems.<\/p>\n<p>Ist der Blog schon eine weile im Betrieb, so hat das Login sicher einiges an Daten &#8211; Artikel, Kommentare. Aber keine Angst, WordPress erlaub beim L\u00f6schen eines Users die \u00dcbernahme aller Daten auf einen anderen User.<\/p>\n<h4>1.1. User ID<\/h4>\n<p>Wer sich nicht vor dem Zugriff und dem \u00c4ndern in der Datenbank scheut, dem sei das \u00c4ndern der ID zu empfehlen. Die Standard-IDs 1 und 2 werden am ehesten von Hackern genutzt.<br \/>\nAchtung, dazu muss die <code>user_id<\/code> in den Tabellen <code>_users<\/code> und <code>_usermeta<\/code> gleich sein! Ebenso gilt es die Tabelle <code>_posts<\/code>, <code>_links<\/code> mit dem neuen ID zu versehen, Spalte <code>post_author<\/code>.<br \/>\n<code>UPDATE `wp_users` SET `ID` = \u201c815\u2033 WHERE `wp_users`.`ID` = 1;<\/code><br \/>\n<code>UPDATE `wp_usermeta` SET `user_id` = '815' WHERE `wp_usermeta`.`user_id` = 1;<\/code><br \/>\n<code>UPDATE `wp_posts` SET `post_author` = '815' WHERE `wp_posts`.`post_author` = 1;<\/code><br \/>\n<code>UPDATE `wp_links` SET `link_owner` = '815' WHERE `wp_links`.`link_owner` = 1;<\/code><\/p>\n<h4>Tipp<\/h4>\n<p>Ich habe das Plugin <a href=\"http:\/\/wordpress.org\/extend\/plugins\/search-and-replace\/\">Search &amp; Replace<\/a> erweitert und nun kann man mit einem Klick die User-Id und das User-Login einfach \u00e4ndern, Kenntnisse im Bereich SQL sind nicht erforderlich.<\/li>\n<li>\n<h3>Tabellen-Pr\u00e4fix<\/h3>\n<p>Der Tabellen-Pr\u00e4fix von WordPress ist im Standard <code>wp_<\/code>. Dieser ist in der <em>wp-config.php<\/em> hinterlegt.<\/p>\n<h4>Neuinstallation<\/h4>\n<p>Bevor WordPress installiert wird, sollte dieser Pr\u00e4fix ge\u00e4ndert werden, in einen beliebigen Pr\u00e4fix, der nicht einfach auch das System schlie\u00dfen l\u00e4sst.<br \/>\nIn der Regel hat WordPress bei vielen Anwendern sicher eine eigene Datenbank und so muss der Pr\u00e4fix nicht auf das System schlie\u00dfen lassen.<\/p>\n<pre><code class=\"php\">\n\/\/ Wenn du verschiedene Pr\u00e4fixe benutzt kannst du innerhalb einer Datenbank\n\/\/ verschiedene WordPress Installationen betreiben\n$table_prefix  = 'wp_';   \/\/ Nur Zahlen, Buchstaben und Unterstriche bitte!\n<\/code><\/pre>\n<p><code>$table_prefix  = '08xyz15_';   \/\/ Nur Zahlen, Buchstaben und Unterstriche bitte!<\/code><\/p>\n<h4>Bestehende Installation<\/h4>\n<p>Was nun aber, wenn das Blog schon aufgesetzt und in Betrieb ist. Auch dann empfiehlt sich die \u00c4nderung des Pr\u00e4fix in eine kryptische Variante.<\/p>\n<p>Nat\u00fcrlich muss auch dazu der Pr\u00e4fix in der <em>wp-config.php<\/em> ge\u00e4ndert werden. Nun weis WordPress zwar, wie der neue Pr\u00e4fix lautet, aber die bestehenden Tabellen in der Datenbank haben diesen neuen Pr\u00e4fix noch nicht und das Blog kann somit nicht funktionieren.<\/p>\n<p>Mit Hilfe eines SQL-Kommandos ist aber auch dies recht schnell zu beheben. Dazu nutzt man am besten phpMyAdmin, welches bei vielen Webhostern vorinstalliert ist.<br \/>\nDie folgende SQL-Anweisung benennt die Tabelle <em>links<\/em> um.<br \/>\n<code>RENAME TABLE wp_links to 08xyz15_links;<\/code><\/p>\n<p>Diese Anweisung f\u00fchrt man f\u00fcr jede bestehende Tabelle aus. Dabei hat WordPress, ab Version 2.3, im Standard 10 Tabellen: <em>comments<\/em>, <em>links<\/em>, <em>options<\/em>, <em>postmeta<\/em>, <em>posts<\/em>, <em>terms<\/em>, <em>term_relationships<\/em>, <em>term_taxonomy<\/em>, <em>usermeta<\/em>, <em>users<\/em>.<\/p>\n<pre><code>\nRENAME TABLE wp_comments to 08xyz15_comments;\nRENAME TABLE wp_links to 08xyz15_links;\nRENAME TABLE wp_options to 08xyz15_options;\nRENAME TABLE wp_postmeta to 08xyz15_postmeta;\nRENAME TABLE wp_posts to 08xyz15_posts;\nRENAME TABLE wp_terms to 08xyz15_terms;\nRENAME TABLE wp_term_relationships to 08xyz15_term_relationships;\nRENAME TABLE wp_term_taxonomy to 08xyz15_term_taxonomy;\nRENAME TABLE wp_usermeta to 08xyz15_usermeta;\nRENAME TABLE wp_users to 08xyz15_users;\n<\/code><\/pre>\n<p>Im Anschluss ist man nicht fertig! In den Tabellen options und usermeta m\u00fcssen noch 4 Felder ge\u00e4ndert werden. Dazu kann man folgenden Ql-Syntax nutzen.<br \/>\n<code>UPDATE 08xyz15_options SET option_name = REPLACE(option_name, 'wp_', '08xyz15_');<\/code><br \/>\n<code>UPDATE 08xyz15_usermeta SET meta_key = REPLACE(meta_key, 'wp_', '08xyz15_');<\/code><\/p>\n<p>Sollte es aus irgendwelchen Gr\u00fcnden, z.B. ein Plugin, noch weitere Felder mit dem alten Pr\u00e4fix geben, dann kann man diese mit der folgenden Anweisung finden.<br \/>\n<code>SELECT * FROM 08xyz15_options WHERE option_name LIKE 'wp_%';<\/code><br \/>\n<code>SELECT * FROM 08xyz15_usermeta WHERE meta_key LIKE 'wp_%';<\/code><\/p>\n<p>Handelt es sich um eine Installation kleiner WordPress Version 2.3, dann m\u00fcssen folgenden 10 Tabellen ber\u00fccksichtigt werden:  <em>categories<\/em>, <em>comments<\/em>, <em>link2cat<\/em>, <em>links<\/em>, <em>options<\/em>, <em>post2cat<\/em>, <em>postmeta<\/em>, <em>posts<\/em>, <em>usermeta<\/em>, <em>users<\/em>.<\/p>\n<p>Nat\u00fcrlich gibt es auch f\u00fcr diese Arbeit ein Plugin, welches einem Anwender die Arbeit erleichtert und die \u00c4ndern schnell durchf\u00fchrt: <a href=\"http:\/\/blogsecurity.net\/wordpress\/wp-prefix-changer-v11-released\/\">WP Prefix Table Changer<\/a>.<\/li>\n<li>\n<h3>Plugin Verzeichnis sch\u00fctzen<\/h3>\n<p>Das WordPress-Entwickler-Team empfiehlt die Sicherung durch einen einfachen Schutz, kopiere eine leere <em>index.html<\/em> in das Plugin-Verzeichnis <em>\/wp-content\/plugins\/<\/em>. Damit ist man auf der sicheren Seite, falls der Apache das Anzeigen von leeren Verzeichnissen zul\u00e4sst.<\/li>\n<li>\n<h3>WordPress Version verschleiern<\/h3>\n<p>WordPress hinterlegt in den Core-Daten die Version der Installation und der Datenbank. Bisher hat man in der Regel im Theme die Version eingepflegt. Diese dient lediglich statistischen Erhebungen, denn dar\u00fcber konnte man ein wenig die jeweils aktuell verf\u00fcgbaren Installationen recht einfach erkennen.<\/p>\n<p>Die Entwickler von WordPress empfehlen seit geraumer Zeit, dass man diesen Tag aus dem Theme entfernt um die Identifizierung zu erschweren. Dazu ist im Theme in der Regel die <em>header.php<\/em> zu \u00e4ndern, in einigen Themes auch die <em>index.php<\/em>.<\/p>\n<pre>&lt;meta name=\"generator\"\ncontent=\"WordPress &lt;?php bloginfo('version'); ?&gt;\" \/&gt;<\/pre>\n<p>Die obige Zeile also entfernen.<\/p>\n<p>Allerdings sollte man nicht verschweigen, dass man trotzdem die Version von WordPress in der einen oder anderen Funktion ben\u00f6tigt und das man die Version beispielsweise im Feed auslesen kann. Einige Plugins beispielsweise greifen auf die Version zu und k\u00f6nnen so auf unterschiedliche Installationen reagieren. Die Version der WordPress-Installation und der Datenbank ist immer in <em>\/wp-includes\/version.php<\/em> zu finden. Wer also die Version komplett verschleiern will, der \u00e4ndert den Eintrag in dieser Datei. Sollte es dann aber zu Problemen mit dem einen oder anderen Plugin oder Theme kommen, dann sollte man sich zumindest an diesen Eingriff erinnern.<\/p>\n<pre>\n$wp_version = '2.2.3';\n\n$wp_db_version = 5183;\n<\/pre>\n<p>Ebenso ist darauf zu achten, nach jedem Update der Installation ist diese Datei wieder hergestellt.<\/p>\n<p>Mit dem L\u00f6schen bzw. \u00c4ndern des Eintrags funktioniert au\u00dferdem der automatische Hinweis auf eine neue Version und der Hinweis auf neue Plugin-Versionen, der seit WordPress Version 2.3.1 vorhanden ist, nicht mehr zuverl\u00e4ssig bzw. gar nicht.<\/p>\n<h4>Tipp<\/h4>\n<p>Ich habe ein Plugin erstellt, was die Version von WordPress ersetzt, entweder mit einer Zufallszahl oder ab Version 2.4 wird der komplette Tag gel\u00f6scht. Damit werden keine Informationen nach au\u00dfen getragen und man muss nach einem WP-Update nicht die Core-Dateien \u00e4ndern.<br \/>\nWeitere Information und Download des Plugins sind auf meinem Privaten Blog im Artikel <a href=\"https:\/\/bueltge.de\/wordpress-version-verschleiern-plugin\/602\/\">WordPress Version verschleiern (Plugin)<\/a> zu finden.<\/li>\n<li>\n<h3>WordPress User-Logins reduzieren<\/h3>\n<p>Im Normalfall hat das Backend nur so viele User, wie man auch wirklich Personen hat, die im System arbeiten. Test-User oder \u00dcberbleibsel geh\u00f6ren gel\u00f6scht.<br \/>\nEin Augenmerk geh\u00f6rt den Rechten. Es ist zu \u00fcberpr\u00fcfen, welche Rechte jeder User hat und ob diese wirklich notwendig sind. Es ist kein Zeichen von Angst oder Geiz, wenn die Rechte der User eingeschr\u00e4nkt sind, auf die jeweiligen Anforderungen und Bed\u00fcrfnisse zugeschnitten.<\/p>\n<h4>Ein Tipp<\/h4>\n<p>Mit Hilfe des Plugins <del datetime=\"2010-12-10T18:36:25+00:00\"><a href=\"http:\/\/www.im-web-gefunden.de\/wordpress-plugins\/role-manager\/\">Role Manager<\/a><\/del> <a href=\"http:\/\/wordpress.org\/extend\/plugins\/members\/\">Members<\/a> lassen sich hervorragend Benutzerrechte erstellen. So lassen sich einfach und \u00fcbersichtlich entsprechend zugeschnittene Rollen f\u00fcr die jeweiligen Nutzer-Aufgaben erstellen, falls die Rollen im Standard nicht ausreichen.<\/li>\n<li>\n<h3>WordPress aktualisieren<\/h3>\n<h4>WordPress Core<\/h4>\n<p>Nicht zu letzt ist es wichtig, dass die Installation immer auf dem aktuellen Sicherheitsstand ist, das hei\u00dft: Spiele immer das aktuelle Release ein! Die aktuelle Release-Version sichert die Sicherheit von WordPress.<br \/>\nDas hei\u00dft nicht, dass man immer die aktuellste Version von WordPress installiert haben muss. Aber das aktuellste Release der verwendeten Version sollte eingespielt sein.<\/p>\n<p>Um auf dem aktuellen Stand zu bleiben, bietet es sich an, den <a href=\"http:\/\/wordpress.org\/development\/feed\/\">Feed von WordPress<\/a> zu abonnieren bzw. immer mal den Tellerrand des eigenen Blogs zu lesen, denn dort wird der Feed-Inhalt dargestellt.<br \/>\nAb der Version WP 2.3.1 weist das System darauf hin, dass es eine neue Revision\/ Version gibt.  Wer den Zugriff nicht erm\u00f6glich will, der findet eine Reihe von Plugins im <a href=\"http:\/\/wordpress.org\/extend\/plugins\/\">offiziellen Plugin-Verzeichnis<\/a>, die diese Verbindung unterbrechen.<\/p>\n<h4>WordPress Plugins<\/h4>\n<p>Gleiches gilt f\u00fcr Plugins. Plugins stellen neue Funktionalit\u00e4ten innerhalb des Systems und k\u00f6nnen damit neue Sicherheitsl\u00fccken einbringen. Vertraue nicht jedem Plugin und versuche die Plugins immer auf dem aktuellen Stand zu halten, auch wenn meist neue Versionen neue Funktionalit\u00e4ten einbringen.<\/p>\n<p>Im weiteren geh\u00f6ren nicht genutzte Plugins nicht in das laufende System. Werden sie nicht ben\u00f6tigt, dann geh\u00f6ren sie entfernt.<\/p>\n<h4>WordPress Theme<\/h4>\n<p>Auch Themes k\u00f6nnen Sicherheitsprobleme aufweisen! Themes mit ihren Templates nutzen PHP-Funktionen und k\u00f6nnen neue Funktionen im Bauch haben. Damit k\u00f6nnen Sicherheitsl\u00fccken auftauchen. Es gilt also ebenfalls, auch Updates des Autors achten.<\/li>\n<li>\n<h3>WP Plugins minimieren<\/h3>\n<p>Wie schon im vorherigen Punkt erw\u00e4hnt, Plugins k\u00f6nnen neue Sicherheitsl\u00fccken in das System einbringen. Daher sollte immer die \u00dcberlegung gelten, muss es wirklich dieses Plugin sein. Bringt es Mehrwert und eventuell sollte man pr\u00fcfen, wie gut ist das Plugin. Nat\u00fcrlich ist es schwer, vor allem wenn man keine PHP-Kenntnisse hat, den Code zu inspizieren und damit ein eventuell bestehendes Problem zu finden. Aber trotzdem kann man ein wenig die Seriosit\u00e4t des Plugin-Autors pr\u00fcfen. Hat der Autor eine Anleitung zum Plugin, gibt es negative Schlagzeilen bzw. Blogeintr\u00e4ge und Kommentare und ist das Impressum des Autors gepflegt? Kleinigkeiten, die aber einiges \u00fcber den Autor und das Plugin aussagen k\u00f6nnen.<\/p>\n<ol>\n<li>Die Grundregel lautet jedoch: <strong>Verwende so wenig wie n\u00f6tig Plugins.<\/strong><\/li>\n<li>Un die zweite Regel: <strong>Teste Plugins nicht im Live-System, ein Vorabtest in einer lokalen Installation kann viele Probleme verhindern.<\/strong><\/li>\n<\/ol>\n<\/li>\n<p>Auch der zweite Punkt hat wichtige Relevanz. Immer wieder holen sich User Problem und unn\u00f6tige Daten in ihr System. Viele Plugins ben\u00f6tigen Einstellungen, die in der Tabelle <em>options<\/em> abgelegt werden. Diese Daten bleiben bei den meisten Plugins auch nach dem deaktivieren des Plugins in der Tabelle bestehen!<\/p>\n<li>\n<h3>Eingeschr\u00e4nkter Login auf <em>wp-admin<\/em><\/h3>\n<p>Ist der Zugriff auf das Backend nur von einem oder wenigen Rechnern gesichert, so kann man den Zugriff einschr\u00e4nken und damit die Sicherheit weiter steigern. Der Zugriff ist einfach per <em>.htaccess<\/em> zu beschr\u00e4nken. Information zu <em>.htaccess<\/em> gibt es viele im Internet. Die Zugriffssperre k\u00f6nnte zum Beispiel f\u00fcr zwei IPs wie folgt aussehen.<\/p>\n<pre>\nAuthUserFile \/dev\/null\nAuthGroupFile \/dev\/null\nAuthName \"Access Control\"\nAuthType Basic\nOrder deny,allow\nDeny from all\n# Whitelist IP Adresse\nAllow from 255.08.15.1\nAllow from 255.08.15.2\n<\/pre>\n<p>Diese Syntax in eine leere Datei ablegen und die eigenen IPs hinterlegen und die Datei als <em>.htaccess<\/em> speichern. Die Datei im Anschluss im Ordner <em>\/wp-admin\/<\/em> ablegen.<\/p>\n<p>Ob man den Zugriff einschr\u00e4nken muss und will, das muss jeder Anwender selbst entscheiden.<\/p>\n<p>Aber es damit ist nat\u00fcrlich die sch\u00f6ne Funktionalit\u00e4t einer Web-Applikation dahin, von \u00fcberall auf das System zugreifen zu k\u00f6nnen.<\/p>\n<h4>via Plugin<\/h4>\n<p>Alternativ kann man dies auch per Plugin realisieren, was einfacher und schneller f\u00fcr den Laien zu bewerkstelligen ist. Als Plugin dient das <a href=\"http:\/\/bad-neighborhood.blogsblogsblogs.com\/2007\/08\/29\/login-lockdown-a-new-wordpress-security-plugin\/\">Login Lockdown Plugin<\/a> oder <a href=\"http:\/\/www.askapache.com\/wordpress\/htaccess-password-protect.html\">AskApache Password Protect<\/a>.<\/li>\n<li>\n<h3>Eingeschr\u00e4nkter Zugriff auf <em>wp-content<\/em> und <em>wp-includes<\/em><\/h3>\n<p>Mit Hilfe einer <em>.htaccess<\/em> kann man ein ganze Reihe von Daten sch\u00fctzen. Mit Hilfe dieser Methode empfiehlt es sich den Zugriff nur auf bestimmte Datei-Formate, wie Bilder, Stylesheets und JavaScript zu beschr\u00e4nken.<\/p>\n<pre>Order deny,allow\nDeny from all\n&lt;Files ~ \".(xml|css|jpe?g|png|gif|js)$\"&gt;\nAllow from all\n&lt;\/Files&gt;<\/pre>\n<p>Der obige Syntax wird wieder in einer<em> .htaccess<\/em> gespeichert und die Ordner <em>\/wp-content\/<\/em> und <em>\/wp-includes\/<\/em> kopiert. Die Datei-Endungen im Syntax m\u00fcssen nat\u00fcrlich angepasst werden, je nach dem, auf was f\u00fcr Dateien man zugreifen muss.<\/p>\n<p><strong>Aufpassen<\/strong>, das eine oder andere Plugin ben\u00f6tigt den Zugriff auf php-Dateien. Daher den Syntax in dem Fall um <code>php<\/code> erweitern. Zumindest f\u00fcr die <em>.htacces<\/em> in <em>\/wp-content\/<\/em> empfiehlt sich die Aufnahme von <code>php<\/code>. \u00c4hnlich verh\u00e4lt es sich, wenn man den Cache von WordPress aktiv hat, dann muss man den Zugriff auf <code>lock<\/code> erlauben.<\/p>\n<pre>\n# Allow only css,jpe*g,png,gif,js\nOrder deny,allow\nDeny from all\n&lt;Files ~ \".(php|lock|xml|css|jpe?g|png|gif|js)$\"&gt;\nAllow from all\n&lt;\/Files&gt;\n<\/pre>\n<p>Im weiteren ist darauf zu achten, dass man nur eine <em>.htaccess<\/em>-Datei im Ordner hat. Sollte man also ebenfalls den Zugriff per <em>.htaccess<\/em> aus Punkt 8 nutzen, so muss der Syntax in einer Datei untergebracht werden.<\/li>\n<li>\n<h3>Sch\u00fctze die <em>wp-config.php<\/em><\/h3>\n<p>Ein weiterer Schutz ist der Zugriff auf die <em>wp-config.php<\/em>, in der alle Daten zum einloggen in die Datenbank hinterlegt sind. Im Grunde gibt es diesen Zugriff nicht, aber mit dieser kleinen Erweiterung in der <em>.htaccess<\/em> im root-Verzeichnis der Installation, geht man auf Nummer sicher.<\/p>\n<pre>\n# protect wp-config.php\n&lt;files wp-config.php&gt;\nOrder deny,allow\nDeny from all\n&lt;\/files&gt;\n<\/pre>\n<p>Viele weitere Informationen dazu mit einigen Beispielen und Diskussionen findet man im <a href=\"https:\/\/bueltge.de\/schuetze-deine-wp-configphp\/547\/\">zugeh\u00f6rigen Artikel<\/a> auf meinem privaten Blog.<\/li>\n<li>\n<h3>Sicherheit pr\u00fcfen<\/h3>\n<p>Das Team von BlogSecurity bietet die <a href=\"http:\/\/blogsecurity.net\/cgi-bin\/wp-scanner.cgi\">Online-Version des WP-Scanners<\/a> schon eine geraume Zeit an und aktualisiert diesen auch immer wieder.<\/p>\n<p>Nicht immer liegt es an den Dateien von WordPress, auch das Theme kann Sicherheitsl\u00fccken enthalten.<\/p>\n<p>Um das eigene Blog zu scannen, muss lediglich ein Kommentar in der <em>header.php<\/em> bzw. <em>index.php<\/em>, falls es keine <em>header.php<\/em> gibt, hinterlegt werden.<br \/>\n<code>&lt;!-- wpscanner --&gt;<\/code><\/p>\n<p>Der Scan ist kritisch zu sehen aber er hilft und erleichtert die Arbeit.<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>Ein Thema, welches ich im Buch leider vernachl\u00e4ssigt habe, ist das Thema Sicherheit. Dieses Thema ist aber immer relevanter, gerade weil WordPress immer popul\u00e4rer wird und damit auch immer interessanter f\u00fcr Hacker und Andere, die sich unbefugt Zutritt zu einer Web-Applikationen geben wollen. Nicht zuletzt ist der Artikel also eine Aufforderung vieler Leser, die mir&hellip; <a class=\"more-link\" href=\"https:\/\/bueltge.de\/wordpress-buch\/wordpress-sicherer-machen\/\"><span class=\"screen-reader-text\">WordPress sicherer machen<\/span> weiterlesen<\/a><\/p>\n","protected":false},"author":813,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[17],"class_list":["post-114","post","type-post","status-publish","format-standard","hentry","category-mehrwert","tag-sicherheit","entry"],"_links":{"self":[{"href":"https:\/\/bueltge.de\/wordpress-buch\/wp-json\/wp\/v2\/posts\/114","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bueltge.de\/wordpress-buch\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bueltge.de\/wordpress-buch\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bueltge.de\/wordpress-buch\/wp-json\/wp\/v2\/users\/813"}],"replies":[{"embeddable":true,"href":"https:\/\/bueltge.de\/wordpress-buch\/wp-json\/wp\/v2\/comments?post=114"}],"version-history":[{"count":0,"href":"https:\/\/bueltge.de\/wordpress-buch\/wp-json\/wp\/v2\/posts\/114\/revisions"}],"wp:attachment":[{"href":"https:\/\/bueltge.de\/wordpress-buch\/wp-json\/wp\/v2\/media?parent=114"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bueltge.de\/wordpress-buch\/wp-json\/wp\/v2\/categories?post=114"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bueltge.de\/wordpress-buch\/wp-json\/wp\/v2\/tags?post=114"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}