{"id":12,"date":"2019-03-22T10:55:24","date_gmt":"2019-03-22T09:55:24","guid":{"rendered":"https:\/\/login.pluginkollektiv.org\/statify\/?page_id=12"},"modified":"2024-04-04T22:14:55","modified_gmt":"2024-04-04T20:14:55","slug":"dokumentation","status":"publish","type":"page","link":"https:\/\/snitch.pluginkollektiv.org\/de\/dokumentation\/","title":{"rendered":"Dokumentation"},"content":{"rendered":"\n<div id=\"funktionen\" class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<h2 class=\"wp-block-heading\">Funktionen<\/h2>\n\n\n\n<p>Jede \u00fcber die WordPress-Schnittstelle hergestellte Verbindung nach \u201eAu\u00dfen\u201c sammelt <em>Snitch<\/em>\n in Form einer Tabelle, die WordPress-Administratoren zug\u00e4nglich ist. \nDie Eigenschaften protokollierter Verbindungen teilt das Plugin in \nsortierbare Spalten auf.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Spalten mit Verbindungsdaten<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\n<strong>Ziel-URL<\/strong><br>\nInternet-Adresse, die aus WordPress heraus aufgerufen wurde.\n<\/li>\n\n\n\n<li>\n<strong>Herkunftsdatei<\/strong><br>\nSkript-Datei, die den eigentlichen Verbindungsaufbau initiiert hat. Nach\n dem Doppelpunkt platziert Snitch die betroffene Zeilennummer, um mit \nder Recherche der Fundstelle starten zu k\u00f6nnen. Bonus: <em>Snitch<\/em> versucht, die betroffene Skript-Datei einem Theme oder Plugin zuzuordnen.\n<\/li>\n\n\n\n<li>\n<strong>Zustand<\/strong><br>\nAktueller Zustand der Verbindung: <em>autorisiert<\/em> oder <em>blockiert<\/em>. In der Auswahlbox oberhalb der Liste lassen sich <em>Snitch<\/em>-Eintr\u00e4ge nach Zustand gruppieren.\n<\/li>\n\n\n\n<li>\n<strong>Status<\/strong><br>\nStatus-Code, der bei aufgebauter Verbindung als Antwort empfangen wurde. So bedeutet der Status-Code <em>200<\/em> einen erfolgreichen Verbindungsaufbau. Fehlerhafte Verbindungsversuche signalisiert Snitch mithilfe des Status-Codes <em>-1<\/em>.\n<\/li>\n\n\n\n<li>\n<strong>Dauer<\/strong><br>\nAusf\u00fchrungsdauer der Verbindung in Sekunden. Praktischer Wert f\u00fcr die Lokalisierung von Performance-Flaschenh\u00e4lsen.\n<\/li>\n\n\n\n<li>\n<strong>Zeit<\/strong><br>\nZeitpunkt der Protokollierung.\n<\/li>\n\n\n\n<li>\n<strong>Daten<\/strong><br>\nWurde eine ausgehende Verbindung mit POST-Variablen versehen, speichert <em>Snitch<\/em> diese Werte zwischen und stellt sie per Klick auf die Schaltfl\u00e4che dar.\n<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Blockieren der Verbindungen<\/h3>\n\n\n\n<p>Die Spalten <em>Ziel-URL<\/em> und <em>Herkunftsdatei<\/em> verf\u00fcgen jeweils \u00fcber einen Mouseover-Link zum Blockieren der zuk\u00fcnftigen Verbindungen nach Muster:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\n<em>Zugriffe auf diese Domain blockieren<\/em><br>\nBlockiert alle Verbindungen zu ausgew\u00e4hlter Domain<\/li>\n\n\n\n<li>\n<em>Zugriffe aus dieser Datei blockieren<\/em><br>\nBlockiert alle Verbindungen aus der Datei<\/li>\n<\/ul>\n\n\n\n<p>Nach dem Klick auf einen der Links bef\u00f6rdert <em>Snitch<\/em> die \nDomain bzw. Datei in die interne Blacklist und wendet die aktualisierte \nRegel bei der n\u00e4chsten Kommunikation an. \u00dcbrigens markiert <em>Snitch<\/em>\n alle Verbindungen innerhalb der Liste in Orange, wenn sie den Regeln \nder Blacklist entsprechen. Blockierte Verbindungen bekommen einen leicht\n roten Hintergrund zugewiesen.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Freigabe der Verbindungen<\/h3>\n\n\n\n<p>Bereits abgewiesene oder erst zum Blockieren markierte Verbindungen \nin Orange-gef\u00e4rbten Spalten lassen ihre Aktion invertieren, sprich die \nRegel aus der Blacklist wieder entfernen. Die Ausf\u00fchrung dieser Aktion \nfindet ebenfalls \u00fcber einblendbare Links statt. Nach dem Klick wechselt \nsich die Spaltenmarkierung auf Gr\u00fcn und bedeutet: Verbindungsmuster vom \nRegelwerk nicht l\u00e4nger erfasst.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"clenaup\">L\u00f6schen der Verbindungen<\/h3>\n\n\n\n<p><em>Snitch<\/em>-Eintr\u00e4ge k\u00f6nnen via Plugin-Schaltfl\u00e4che <em>Protokoll leeren<\/em> gefahrlos gel\u00f6scht werden. Dieser Vorgang hat keinerlei Beeintr\u00e4chtigungen auf die Funktionsweise des Plugins: Angelegte <em>Snitch<\/em>-Regel zu blockierten Inhalten (Domains bzw. Dateien) bleiben weiterhin bestehen und sind aktiv.<\/p>\n\n\n\n<p>Snitch verf\u00fcgt \u00fcber eine automatische Bereinigung des  Datenbestandes. T\u00e4glich werden alte Eintr\u00e4ge gel\u00f6scht. Auf diese Weise soll die WordPress-Datenbank geschont werden. Mithilfe des Plugin-Filters <a href=\"#snitch_cleanup_items\">snitch_cleanup_items<\/a> kann die Anzahl der Eintr\u00e4ge, die aufbewahrt werden sollen justiert werden.<\/p>\n<\/div><\/div>\n\n\n\n<div id=\"installation\" class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<h2 class=\"wp-block-heading\">Installation<\/h2>\n\n\n\n<p><em>Snitch<\/em>&nbsp;kann jederzeit im offiziellen WordPress-Pluginverzeichnis heruntergeladen werden:&nbsp;<a href=\"https:\/\/de.wordpress.org\/plugins\/snitch\/\">Download<\/a><\/p>\n\n\n\n<p>Alternativ erfolgt die Installation direkt in WordPress im Administrationsbereich &#8222;Plugins&#8220; \u2192 &#8222;Plugins hinzuf\u00fcgen&#8220;: Nach&nbsp;<em>Snitch<\/em>&nbsp;suchen, ausw\u00e4hlen, installieren.<\/p>\n\n\n\n<p>Nach der erfolgreichen Aktivierung des Plugins ist die Verbindungs\u00fcbersicht \u00fcber das seitliche Men\u00fc des Administrationsbereiches zug\u00e4nglich. Ab diesem Zeitpunkt protokolliert&nbsp;<em>Snitch<\/em>ausgehende Verbindungen innerhalb von WordPress und listet Anfragen in der Verbindungs\u00fcbersicht auf.<\/p>\n\n\n\n<p><em>Snitch<\/em>&nbsp;verf\u00fcgt \u00fcber keine Einstellungsoptionen.<\/p>\n<\/div><\/div>\n\n\n\n<div id=\"hooks\" class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<h2 class=\"wp-block-heading\" id=\"hooks\">Hooks<\/h2>\n\n\n\n<p>Hooks erlauben es dem Nutzer, den Funktionsumfang eines WordPress-Plugins zu erweitern. Nachfolgende Hooks sind in <em>Snitch<\/em> hinterlegt und lassen sich via Code ansprechen bzw. steuern:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"snitch_cleanup_items\">snitch_cleanup_items<\/h3>\n\n\n\n<p>Steuerung der Anzahl an Eintr\u00e4gen, die im <em>Snitch<\/em>-Protokoll aufbewahrt werden sollen. Der t\u00e4gliche Aufr\u00e4umprozess ber\u00fccksichtigt diese Zahl beim L\u00f6schen von Altdaten.<\/p>\n\n\n\n<p><em>Typ: Integer<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">snitch_inspect_request_hosts<\/h3>\n\n\n\n<p>Zu blockierende Hosts aus der Nutzer-Blacklist. Werte werden bei der \n\u00dcberpr\u00fcfung der ausgehenden Verbindungen eingelesen und abgeglichen.<\/p>\n\n\n\n<p><em>Typ: Array<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">snitch_inspect_request_files<\/h3>\n\n\n\n<p>Zu blockierende Dateien aus der Nutzer-Blacklist. Werte werden bei \nder \u00dcberpr\u00fcfung der ausgehenden Verbindungen eingelesen und abgeglichen.<\/p>\n\n\n\n<p><em>Typ: Array<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">snitch_inspect_request_insert_post<\/h3>\n\n\n\n<p>Aktuell <em>blockierte<\/em> Verbindung mit ihren Eigenschaften (URL, Status-Code, Host, Datei, Zeile, Quelle, Status=BLOCKED, POST-Daten), die als <em>Snitch<\/em>-Eintrag gespeichert wird.<\/p>\n\n\n\n<p><em>Typ: Array<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">snitch_log_response_insert_post<\/h3>\n\n\n\n<p>Aktuell <em>genehmigte<\/em> Verbindung mit ihren Eigenschaften (URL, \nStatus-Code, Ausf\u00fchrungsdauer, Host, Datei, Zeile, Quelle, \nStatus=AUTHORIZED, POST-Daten), die als <em>Snitch<\/em>-Eintrag gespeichert wird.<\/p>\n\n\n\n<p><em>Typ: Array<\/em><\/p>\n<\/div><\/div>\n\n\n\n<div id=\"hinweise\" class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<h2 class=\"wp-block-heading\">Hinweise<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><em>Snitch<\/em> \u00fcberwacht nur den Datenverkehr, der \u00fcber <a href=\"http:\/\/codex.wordpress.org\/HTTP_API\">WordPress HTTP API<\/a> abgewickelt wird. Anderweitige Verbindungsversuche werden ignoriert.<\/li>\n\n\n\n<li>Blockierung einzelner Domains und\/oder Dateien in <em>Snitch<\/em> kann die Funktionsweise der betroffenen WordPress-Anwendungen beeintr\u00e4chtigen.<\/li>\n\n\n\n<li>Ausschlie\u00dflich Blog-Administratoren verf\u00fcgen \u00fcber die Berechtigung, die <em>Snitch<\/em>-Verbindungs\u00fcbersicht aufzurufen.<\/li>\n\n\n\n<li>Mithilfe von WordPress-Konstanten <a href=\"https:\/\/wp-kama.com\/1588\/wordpress-constants#wp_http_block_external\">WP_HTTP_BLOCK_EXTERNAL<\/a> und <a href=\"https:\/\/wp-kama.com\/1588\/wordpress-constants#wp_accessible_hosts\">WP_ACCESSIBLE_HOSTS<\/a> kann der Datenverkehr aus WordPress heraus vollst\u00e4ndig deaktiviert oder punktuell freigegeben werden.<\/li>\n<\/ul>\n<\/div><\/div>\n\n\n\n<div id=\"faq\" class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<h2 class=\"wp-block-heading\">FAQ<\/h2>\n\n\n\n<p>Hat das Online-Handbuch nicht alle Fragen beantwortet? Vielleicht \nhelfen die nachfolgenden Antworten auf die h\u00e4ufig gestellten Fragen.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Snitch erzeugt sehr viele Datenbank-Eintr\u00e4ge<\/h3>\n\n\n\n<p><em>Snitch<\/em> wurde konzipiert, um jede ausgehende Verbindung in \nWordPress zu protokollieren. L\u00e4uft die Datenbank schnell voll, sollte \nman sich als Blog-Betreiber fragen: Warum eigentlich? Warum kommuniziert\n mein WordPress samt Plugins so oft nach Au\u00dfen, dass die \nDatenbanktabelle voll l\u00e4uft? Geht denn wirklich alles mit rechten Dingen\n zu und muss diese Kommunikation wirklich sein?<\/p>\n\n\n\n<p>Zur Erinnerung: <em>Snitch<\/em> soll helfen, die \nWordPress-Performance zu erh\u00f6hen, indem Verbindungen als Flaschenh\u00e4lse \nerkannt und aufgezeigt werden. Die Aufgabe des Blog-Administrators ist \nes, die Quelle der Ursache (Plugin, Theme, etc.) zu eliminieren.<\/p>\n\n\n\n<p><em>Snitch<\/em> sorgt automatisch daf\u00fcr, dass in der Datenbank nicht \nmehr als 200 Eintr\u00e4ge aufbewahrt werden. Sollte es dennoch notwendig \nsein, <em>Snitch<\/em>-Eintr\u00e4ge aus der Datenbank h\u00e4ndisch zu entfernen, helfen zwei smarte Datenbank-Befehle:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">DELETE FROM `wp_postmeta` WHERE `post_id` IN ( SELECT `ID` FROM `wp_posts` WHERE `post_type` = 'snitch' )\nDELETE FROM `wp_posts` WHERE `post_type` = 'snitch'<\/pre>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Werden Verbindungen im Front-End \u00fcberwacht?<\/h3>\n\n\n\n<p><em>Snitch<\/em> schreibt jede Verbindung mit, die den Blog \u00fcber <a href=\"http:\/\/codex.wordpress.org\/HTTP_API\">WordPress HTTP API<\/a>\n (interne WordPress-Schnittstelle f\u00fcr Datenkommunikation) verl\u00e4sst. Das \nbetrifft sowohl Back-End wie Front-End einer WordPress-Installation.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Warum listet Snitch WordPress-Cronjobs auf?<\/h3>\n\n\n\n<p>Interne Cronjob-Auftr\u00e4ge ruft WordPress via <a href=\"http:\/\/codex.wordpress.org\/HTTP_API\">WordPress HTTP API<\/a> auf \u2013 genau diese Schnittstelle \u00fcberwacht <em>Snitch<\/em> und zeichnet entsprechend auch Cronjob-Zugriffe auf.<\/p>\n\n\n\n<p>Werden Cronjobs zu oft gelistet, stimmt m\u00f6glicherweise etwas nicht. \nEs empfiehlt sich daher, die Liste mit geplanten Cronjob-Auftr\u00e4gen zu \nkontrollieren.<\/p>\n\n\n\n<p>Der nachfolgende Code-Snippet in der WordPress-Konfigurationsdatei <code>wp-config.php<\/code> schaltet die Protokollierung der internen WordPress-Anfragen aus:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">define('SNITCH_IGNORE_INTERNAL_REQUESTS', true);<\/pre>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Warum werden Snitch-Eintr\u00e4ge durch Google indexiert?<\/h3>\n\n\n\n<p><em>Snitch<\/em> legt seine Eintr\u00e4ge standarisiert als <a href=\"https:\/\/codex.wordpress.org\/Post_Types\">WordPress Custom Post Types<\/a>\n an. Wichtiger Schritt dabei: Durch ein WordPress-Attribut markiert \nSnitch alle Protokolleintr\u00e4ge als privat, also nicht \u00f6ffentlich. Soweit \nw\u00fcrde die Ideologie mit privaten, nicht zug\u00e4nglichen Eintr\u00e4gen auch \nklappen, wenn da nicht WordPress-Plugins w\u00e4ren, die alle \u2013 also auch \nprivate \u2013 Custom Post Types in die Welt tragen und Suchmaschinen \nkommunizieren w\u00fcrden. Mit f\u00fcr den Blogger fatalen Folgen.<\/p>\n\n\n\n<p>Und so passiert es schnell, dass Google pl\u00f6tzlich auf <em>Snitch<\/em>-Eintr\u00e4ge (als Blogseiten) st\u00f6\u00dft, die f\u00fcr den \u00f6ffentlichen Zugang gar nicht vorgesehen sind. Zum Beispiel weil <em>Snitch<\/em>-Eintr\u00e4ge\n in der Sitemap-XML des Blogs auftauchen, da ein Sitemap-XML Plugin der \nMeinung ist, auch private Eintr\u00e4ge dahin stecken und f\u00fcr die Indexierung\n freigeben zu m\u00fcssen. Da hilft auch keine Sperrung in <code>robots.txt<\/code>, da die Datei <code>robots.txt<\/code> die Indexierung der Seiten nicht verhindert.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-css-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Automatische Shares spielen verr\u00fcckt<\/h3>\n\n\n\n<p>Dass bei jedem neuen <em>Snitch<\/em>-Eintrag automatisch eine Nachricht an Facebook und\/oder Twitter rausgeht, liegt eindeutig nicht an <em>Snitch<\/em>.\n Vielmehr ist die Ursache im eingesetzten Auto-Tweet-Facebook-Plugin zu \nsuchen, welches fehlerhaft bei jedem \u2013 auch nicht \u00f6ffentlichen \u2013 <a href=\"https:\/\/codex.wordpress.org\/Post_Types\">WordPress Custom Post Type<\/a> einen automatischen Event ausl\u00f6st. Und das ist falsch. Der Einsatz solcher Plugins sollte \u00fcberdacht werden.<\/p>\n<\/div><\/div>\n\n\n\n<div id=\"versionsverlauf\" class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<h2 class=\"wp-block-heading\">Versionsverlauf<\/h2>\n\n\n\n<p>Das vollst\u00e4ndige \u00c4nderungsprotokoll wird <a href=\"https:\/\/github.com\/pluginkollektiv\/snitch\/blob\/master\/CHANGELOG.md\">hier<\/a> bereitgestellt. <\/p>\n<\/div><\/div>\n\n\n\n<div id=\"spenden\" class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<h2 class=\"wp-block-heading\">Spenden<\/h2>\n\n\n\n<p>Dass die professionelle und passionierte (Weiter)Entwicklung eines  Plugins mit (Zeit)Aufwand verbunden ist, versteht sich von selbst und d\u00fcrfte jedem Nutzer klar sein.<\/p>\n\n\n\n<p>Lust die Weiterentwicklung von <em>Snitch<\/em> voranzutreiben?<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.paypal.com\/cgi-bin\/webscr?cmd=_donations&amp;business=TD4AMD2D8EMZW\">PayPal<\/a><\/li>\n<\/ul>\n\n\n\n<p>Danke!<\/p>\n<\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Funktionen Jede \u00fcber die WordPress-Schnittstelle hergestellte Verbindung nach \u201eAu\u00dfen\u201c sammelt Snitch in Form einer Tabelle, die WordPress-Administratoren zug\u00e4nglich ist. Die Eigenschaften protokollierter Verbindungen teilt das Plugin in sortierbare Spalten auf. Spalten mit Verbindungsdaten Blockieren der Verbindungen Die Spalten Ziel-URL und Herkunftsdatei verf\u00fcgen jeweils \u00fcber einen Mouseover-Link zum Blockieren der zuk\u00fcnftigen Verbindungen nach Muster: Nach dem &hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-12","page","type-page","status-publish","hentry","post","without-featured-image"],"_links":{"self":[{"href":"https:\/\/snitch.pluginkollektiv.org\/de\/wp-json\/wp\/v2\/pages\/12","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/snitch.pluginkollektiv.org\/de\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/snitch.pluginkollektiv.org\/de\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/snitch.pluginkollektiv.org\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/snitch.pluginkollektiv.org\/de\/wp-json\/wp\/v2\/comments?post=12"}],"version-history":[{"count":13,"href":"https:\/\/snitch.pluginkollektiv.org\/de\/wp-json\/wp\/v2\/pages\/12\/revisions"}],"predecessor-version":[{"id":124,"href":"https:\/\/snitch.pluginkollektiv.org\/de\/wp-json\/wp\/v2\/pages\/12\/revisions\/124"}],"wp:attachment":[{"href":"https:\/\/snitch.pluginkollektiv.org\/de\/wp-json\/wp\/v2\/media?parent=12"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}