<?xml version="1.0" encoding="utf-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	
	xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>bueltge.de [by:ltge.de] - Kommentare zu: WordPress 2.6  erlaubt das Auslagern von wp-content</title>
	<atom:link href="http://bueltge.de/wordpress-26-erlaubt-das-auslagern-von-wp-content/672/feed/" rel="self" type="application/rss+xml" />
	<link>http://bueltge.de/wordpress-26-erlaubt-das-auslagern-von-wp-content/672/</link>
	<description>Frank Bültge schreibt auf bueltge.de zu den Themen Webentwicklung &#38; design, WordPress, Literatur und andere Themen bezüglich Internet und Development</description>
	<lastBuildDate>Tue, 07 Feb 2012 20:21:00 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>Von: Frank Bültge</title>
		<link>http://bueltge.de/wordpress-26-erlaubt-das-auslagern-von-wp-content/672/#comment-439047</link>
		<dc:creator>Frank Bültge</dc:creator>
		<pubDate>Thu, 08 Dec 2011 22:03:11 +0000</pubDate>
		<guid isPermaLink="false">http://bueltge.de/?p=672#comment-439047</guid>
		<description>@TOm: eventuell ist dein Webspace so, dass du auf diesen Ordern nicht öffentlich zugreifen kannst.</description>
		<content:encoded><![CDATA[<p>@TOm: eventuell ist dein Webspace so, dass du auf diesen Ordern nicht öffentlich zugreifen kannst.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Tom</title>
		<link>http://bueltge.de/wordpress-26-erlaubt-das-auslagern-von-wp-content/672/#comment-438998</link>
		<dc:creator>Tom</dc:creator>
		<pubDate>Thu, 08 Dec 2011 19:51:24 +0000</pubDate>
		<guid isPermaLink="false">http://bueltge.de/?p=672#comment-438998</guid>
		<description>Die Datei ist in dem Verzeichnis vorhanden ich habe den Ordner von Lokal 1 zu 1 auf den Webspace gezogen. Wie ist das mit Rechtsprobleme gemeint. Sollte ich da meinen Hoster eventuell kontaktieren?</description>
		<content:encoded><![CDATA[<p>Die Datei ist in dem Verzeichnis vorhanden ich habe den Ordner von Lokal 1 zu 1 auf den Webspace gezogen. Wie ist das mit Rechtsprobleme gemeint. Sollte ich da meinen Hoster eventuell kontaktieren?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Frank Bültge</title>
		<link>http://bueltge.de/wordpress-26-erlaubt-das-auslagern-von-wp-content/672/#comment-438986</link>
		<dc:creator>Frank Bültge</dc:creator>
		<pubDate>Thu, 08 Dec 2011 19:28:19 +0000</pubDate>
		<guid isPermaLink="false">http://bueltge.de/?p=672#comment-438986</guid>
		<description>@tom: die Funktion file() kann nicht zugreifen - Unable to access; Rechteprobleme oder Verfügbarkeit?</description>
		<content:encoded><![CDATA[<p>@tom: die Funktion file() kann nicht zugreifen - Unable to access; Rechteprobleme oder Verfügbarkeit?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Tom</title>
		<link>http://bueltge.de/wordpress-26-erlaubt-das-auslagern-von-wp-content/672/#comment-438482</link>
		<dc:creator>Tom</dc:creator>
		<pubDate>Wed, 07 Dec 2011 19:23:56 +0000</pubDate>
		<guid isPermaLink="false">http://bueltge.de/?p=672#comment-438482</guid>
		<description>Ich hätte eine kleine  Frage zu dem Umbenennen des Ordners. Wenn ich mein das wp-content Verzeichnis umbenenne und anschließend die Zeile Code mit meinen Einstellungen in die wp-config.php kopiere funktioniert Lokal in der Testumgebung alles prima nur wenn ich auf dem Server bzw. Webspace das selbe machen möchte geben mir entsprechende Plugins eine Fehlermeldung aus, die lokal eben nicht auftreten.

Hier ein Beispiel:
Warning: file() [function.file]: Unable to access /var/www/web/html/core/wp-content/plugins/mingle-forum/wpf-main.php in /var/www/web/html/core/static/plugins/mingle-forum/fs-admin/fs-admin.php on line 348
Das Verzeichnis shabe ich in diesem fall in &quot;static&quot; umbenannt. Wo könnte der Fehler liegen ich werde nämlich nicht schlau daraus :/</description>
		<content:encoded><![CDATA[<p>Ich hätte eine kleine  Frage zu dem Umbenennen des Ordners. Wenn ich mein das wp-content Verzeichnis umbenenne und anschließend die Zeile Code mit meinen Einstellungen in die wp-config.php kopiere funktioniert Lokal in der Testumgebung alles prima nur wenn ich auf dem Server bzw. Webspace das selbe machen möchte geben mir entsprechende Plugins eine Fehlermeldung aus, die lokal eben nicht auftreten.</p>
<p>Hier ein Beispiel:<br />
Warning: file() [function.file]: Unable to access /var/www/web/html/core/wp-content/plugins/mingle-forum/wpf-main.php in /var/www/web/html/core/static/plugins/mingle-forum/fs-admin/fs-admin.php on line 348<br />
Das Verzeichnis shabe ich in diesem fall in "static" umbenannt. Wo könnte der Fehler liegen ich werde nämlich nicht schlau daraus :/</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Detlef</title>
		<link>http://bueltge.de/wordpress-26-erlaubt-das-auslagern-von-wp-content/672/#comment-422653</link>
		<dc:creator>Detlef</dc:creator>
		<pubDate>Thu, 27 Oct 2011 10:30:14 +0000</pubDate>
		<guid isPermaLink="false">http://bueltge.de/?p=672#comment-422653</guid>
		<description>Hallo Frank,
egal was ich im Zusammenhang mit WP bei Google suche, ich lande zu 95% auf deiner Seite. Danke für deine Mühe...
Detlef</description>
		<content:encoded><![CDATA[<p>Hallo Frank,<br />
egal was ich im Zusammenhang mit WP bei Google suche, ich lande zu 95% auf deiner Seite. Danke für deine Mühe...<br />
Detlef</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Venooze</title>
		<link>http://bueltge.de/wordpress-26-erlaubt-das-auslagern-von-wp-content/672/#comment-350873</link>
		<dc:creator>Venooze</dc:creator>
		<pubDate>Wed, 30 Dec 2009 06:52:35 +0000</pubDate>
		<guid isPermaLink="false">http://bueltge.de/?p=672#comment-350873</guid>
		<description>Ich hatte einen Schreibfehler in der wp-config.php. &lt;blockquote&gt;if ( !defined(&#039;ABSPATH&#039;) )
	define(&#039;ABSPATH&#039;, dirname(__FILE__) . &#039;/&#039;);
require_once(ABSPATH . &#039;wp-settings.php&#039;);
&lt;/blockquote&gt; Hiermit funktioniert es wieder. Habe so lange bei Google gesucht und hier die Lösung gefunden.</description>
		<content:encoded><![CDATA[<p>Ich hatte einen Schreibfehler in der wp-config.php.<br />
<blockquote>if ( !defined('ABSPATH') )<br />
	define('ABSPATH', dirname(__FILE__) . '/');<br />
require_once(ABSPATH . 'wp-settings.php');
</blockquote></p>
<p> Hiermit funktioniert es wieder. Habe so lange bei Google gesucht und hier die Lösung gefunden.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Vanessa</title>
		<link>http://bueltge.de/wordpress-26-erlaubt-das-auslagern-von-wp-content/672/#comment-347791</link>
		<dc:creator>Vanessa</dc:creator>
		<pubDate>Fri, 27 Nov 2009 21:34:32 +0000</pubDate>
		<guid isPermaLink="false">http://bueltge.de/?p=672#comment-347791</guid>
		<description>&lt;blockquote&gt;$locale = get_locale();
$locale_file = WP_LANG_DIR . &quot;/$locale.php&quot;;
if ( is_readable($locale_file) )
require_once($locale_file); &lt;/blockquote&gt;

Danke für diesen Tip. Danach habe ich gesucht</description>
		<content:encoded><![CDATA[<blockquote><p>$locale = get_locale();<br />
$locale_file = WP_LANG_DIR . "/$locale.php";<br />
if ( is_readable($locale_file) )<br />
require_once($locale_file); </p></blockquote>
<p>Danke für diesen Tip. Danach habe ich gesucht</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Xel</title>
		<link>http://bueltge.de/wordpress-26-erlaubt-das-auslagern-von-wp-content/672/#comment-335896</link>
		<dc:creator>Xel</dc:creator>
		<pubDate>Sat, 25 Jul 2009 22:38:27 +0000</pubDate>
		<guid isPermaLink="false">http://bueltge.de/?p=672#comment-335896</guid>
		<description>Ich mag es nicht verstecken als Sicherheitsfeature anzusehen.
Das ist wie mit Verschlüsselung... ein Verschlüsselungssystem ist nicht sicherer nur weil es nicht öffentlich ist.

Klar sehe ich den Sinn dahinter. Aber aufgrund der vielen WP Installationen auf Servern bei denen PHP keine Schreibrechte hat, außer wenn man die Rechte auf 777/666 setzt, reißt das eigentlich nur noch mehr Sicherheitslücken, weil dann tausende WP Installationen einen Ordner mit Schreibrechten haben, in dem Dateien mit Schreibrechten sind, welche tatsächlich von WP genutzt werden (der Plugin Ordner und die Plugins...) und das für jeden Nutzer auf dem System eben schreibbar ist.

Wenn einmal ein Angreifer über einen beliebigen auf dem gleichen Server gehosteten Account einsteigt, kann er dann potentiell alle Plugins aller (noch so sicheren) Installationen beliebig verändern. Eine Vorstellung die mir nicht gefällt... Sorry.</description>
		<content:encoded><![CDATA[<p>Ich mag es nicht verstecken als Sicherheitsfeature anzusehen.<br />
Das ist wie mit Verschlüsselung... ein Verschlüsselungssystem ist nicht sicherer nur weil es nicht öffentlich ist.</p>
<p>Klar sehe ich den Sinn dahinter. Aber aufgrund der vielen WP Installationen auf Servern bei denen PHP keine Schreibrechte hat, außer wenn man die Rechte auf 777/666 setzt, reißt das eigentlich nur noch mehr Sicherheitslücken, weil dann tausende WP Installationen einen Ordner mit Schreibrechten haben, in dem Dateien mit Schreibrechten sind, welche tatsächlich von WP genutzt werden (der Plugin Ordner und die Plugins...) und das für jeden Nutzer auf dem System eben schreibbar ist.</p>
<p>Wenn einmal ein Angreifer über einen beliebigen auf dem gleichen Server gehosteten Account einsteigt, kann er dann potentiell alle Plugins aller (noch so sicheren) Installationen beliebig verändern. Eine Vorstellung die mir nicht gefällt... Sorry.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Helge Staedtler</title>
		<link>http://bueltge.de/wordpress-26-erlaubt-das-auslagern-von-wp-content/672/#comment-335888</link>
		<dc:creator>Helge Staedtler</dc:creator>
		<pubDate>Sat, 25 Jul 2009 20:48:58 +0000</pubDate>
		<guid isPermaLink="false">http://bueltge.de/?p=672#comment-335888</guid>
		<description>@codestyling: Hmm, gute Idee das mit dem Ausstieg. Werde ich bei mir mal einbauen in Kombination mit Abfrage einer Konstanten die da sein muss von meinem Plugin. Danke schön!

Ich dachte was die Ordner der deaktivierten Plugins angeht einfach an einen Ordnernamen, der nicht guessable ist und dessen Name in den wp_options dann liegt. So weiß wordpress wie der Ordner heißt, aber ein Angreifer kann schonmal vergessen an irgendwelche Lücken abgeschalteter Plugins zu gelangen. =)</description>
		<content:encoded><![CDATA[<p>@codestyling: Hmm, gute Idee das mit dem Ausstieg. Werde ich bei mir mal einbauen in Kombination mit Abfrage einer Konstanten die da sein muss von meinem Plugin. Danke schön!</p>
<p>Ich dachte was die Ordner der deaktivierten Plugins angeht einfach an einen Ordnernamen, der nicht guessable ist und dessen Name in den wp_options dann liegt. So weiß wordpress wie der Ordner heißt, aber ein Angreifer kann schonmal vergessen an irgendwelche Lücken abgeschalteter Plugins zu gelangen. =)</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: codestyling</title>
		<link>http://bueltge.de/wordpress-26-erlaubt-das-auslagern-von-wp-content/672/#comment-335881</link>
		<dc:creator>codestyling</dc:creator>
		<pubDate>Sat, 25 Jul 2009 19:30:53 +0000</pubDate>
		<guid isPermaLink="false">http://bueltge.de/?p=672#comment-335881</guid>
		<description>Das mit dem Ausstieg aus dem Plugin sieht zumindest bei mir immer so aus:
&lt;code&gt;if (!function_exists (&#039;add_action&#039;)) {
	header(&#039;Status: 403 Forbidden&#039;);
	header(&#039;HTTP/1.1 403 Forbidden&#039;);
	exit();
}&lt;/code&gt;
Wenn man die Ordner komplett &quot;virtualisieren&quot; wollte, dann könnte man das nur so ähnlich angehen, wie bei einem Apache Reverse Proxy und müsste die Url&#039;s in jeder Seite zusätzlich mit umschreiben lassen. Machbar wäre das schon, aber der Aufwand und die Pflege steht in keinen Verhältnis zum erhofften Nutzen, wenn man per POST Parameter dann doch noch irgendwo &quot;einsteigen&quot; könnte, wo eine Sicherheitslücke klafft.</description>
		<content:encoded><![CDATA[<p>Das mit dem Ausstieg aus dem Plugin sieht zumindest bei mir immer so aus:<br />
<code>if (!function_exists ('add_action')) {<br />
	header('Status: 403 Forbidden');<br />
	header('HTTP/1.1 403 Forbidden');<br />
	exit();<br />
}</code><br />
Wenn man die Ordner komplett "virtualisieren" wollte, dann könnte man das nur so ähnlich angehen, wie bei einem Apache Reverse Proxy und müsste die Url's in jeder Seite zusätzlich mit umschreiben lassen. Machbar wäre das schon, aber der Aufwand und die Pflege steht in keinen Verhältnis zum erhofften Nutzen, wenn man per POST Parameter dann doch noch irgendwo "einsteigen" könnte, wo eine Sicherheitslücke klafft.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Xel</title>
		<link>http://bueltge.de/wordpress-26-erlaubt-das-auslagern-von-wp-content/672/#comment-335858</link>
		<dc:creator>Xel</dc:creator>
		<pubDate>Sat, 25 Jul 2009 15:58:08 +0000</pubDate>
		<guid isPermaLink="false">http://bueltge.de/?p=672#comment-335858</guid>
		<description>Naja, du hast ja generell mal Recht.
Aber es ist halt auch immer das Problem, dass PHP nicht unbedingt ausreichend Rechnte hat um sowas zu realisieren. Bei mir ja, da läuft suExec, aber bei vielen eben nicht. Und wie soll das mit dem &quot;geheimen&quot; Verzeichnis funktionieren? Für jede Installation ein eigenes? Man könnte auch eine .htaccess im wp-content mitliefern, die den Aufruf von Dateien im Template und Pluginverzeichnis verbietet und nur Aufrufe auf Dateien in Unterordnern namens images, scripts, ajax sowie den Aufruf von css, js und den verschiedenen Bildformaten zulässt. Damit wären zumindest die üblichen Dateien, die man nie von Hand aufrufen muss effektiv geschützt.

Was für Plugin-Autoren sinnvoll wäre ist ganz oben in jeder Datei eine Konstante abzufragen und dann per exit auszusteigen, wenn die nicht definiert ist. Dann kann die php-Datei nicht mehr direkt aufgerufen werden. Ist aber leider ne Sache die der Plugin-Autor bedenken muss...</description>
		<content:encoded><![CDATA[<p>Naja, du hast ja generell mal Recht.<br />
Aber es ist halt auch immer das Problem, dass PHP nicht unbedingt ausreichend Rechnte hat um sowas zu realisieren. Bei mir ja, da läuft suExec, aber bei vielen eben nicht. Und wie soll das mit dem "geheimen" Verzeichnis funktionieren? Für jede Installation ein eigenes? Man könnte auch eine .htaccess im wp-content mitliefern, die den Aufruf von Dateien im Template und Pluginverzeichnis verbietet und nur Aufrufe auf Dateien in Unterordnern namens images, scripts, ajax sowie den Aufruf von css, js und den verschiedenen Bildformaten zulässt. Damit wären zumindest die üblichen Dateien, die man nie von Hand aufrufen muss effektiv geschützt.</p>
<p>Was für Plugin-Autoren sinnvoll wäre ist ganz oben in jeder Datei eine Konstante abzufragen und dann per exit auszusteigen, wenn die nicht definiert ist. Dann kann die php-Datei nicht mehr direkt aufgerufen werden. Ist aber leider ne Sache die der Plugin-Autor bedenken muss...</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Helge Staedtler</title>
		<link>http://bueltge.de/wordpress-26-erlaubt-das-auslagern-von-wp-content/672/#comment-335853</link>
		<dc:creator>Helge Staedtler</dc:creator>
		<pubDate>Sat, 25 Jul 2009 14:59:05 +0000</pubDate>
		<guid isPermaLink="false">http://bueltge.de/?p=672#comment-335853</guid>
		<description>@Xel: Gut das mit dem Massenangriff stimmt. Wobei ich jetzt als Massenangreifer dennoch oder gerade deshalb mein Attack-Script vorher möglichst intelligent gestalten würde, denn sonst falle ich auf einer &quot;Blogfarm&quot; die ich mir aussuche bestimmt als erste auf.

Aber es stimmt schon, dass es einige Angreifer gibt, denen das völlig egal ist, die versuchen einfach blind irgendwelche Dateien abzurufen in der Hoffnung schon irgendwas zu treffen. Wenn ich also ein Mass-Attacker wäre, dan würde ich prinzipiell nur auf Angriffspunkte gehen, die NICHT variabel sind sondern in jeder Zielinstallation eine Konstante darstellen. Vollkommen klar, dass ein wp-content da ein Einstiegspunkt ist. Genauso wie alles was im root-dir des Blogs liegt.

Was ich z.B. nicht kapiere ist, wieso ein DEAKTIVIERTES Plugin überhaupt noch im directory plugins weiter liegen bleibt und nicht verschoben wird. Da müsste es ein geheimes directory für geben, denn so wie es jetzt ist kann selbst über bereits abgeschaltete plugins deren .php-filenames man kennt ein angriff gefahren werden. hab ich bei der Entwicklung meines eigenen plugins gemerkt, das AUS nicht gleich wirklich AUS heißt! ;-)</description>
		<content:encoded><![CDATA[<p>@Xel: Gut das mit dem Massenangriff stimmt. Wobei ich jetzt als Massenangreifer dennoch oder gerade deshalb mein Attack-Script vorher möglichst intelligent gestalten würde, denn sonst falle ich auf einer "Blogfarm" die ich mir aussuche bestimmt als erste auf.</p>
<p>Aber es stimmt schon, dass es einige Angreifer gibt, denen das völlig egal ist, die versuchen einfach blind irgendwelche Dateien abzurufen in der Hoffnung schon irgendwas zu treffen. Wenn ich also ein Mass-Attacker wäre, dan würde ich prinzipiell nur auf Angriffspunkte gehen, die NICHT variabel sind sondern in jeder Zielinstallation eine Konstante darstellen. Vollkommen klar, dass ein wp-content da ein Einstiegspunkt ist. Genauso wie alles was im root-dir des Blogs liegt.</p>
<p>Was ich z.B. nicht kapiere ist, wieso ein DEAKTIVIERTES Plugin überhaupt noch im directory plugins weiter liegen bleibt und nicht verschoben wird. Da müsste es ein geheimes directory für geben, denn so wie es jetzt ist kann selbst über bereits abgeschaltete plugins deren .php-filenames man kennt ein angriff gefahren werden. hab ich bei der Entwicklung meines eigenen plugins gemerkt, das AUS nicht gleich wirklich AUS heißt! <img src='http://bueltge.de/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Frank Bültge</title>
		<link>http://bueltge.de/wordpress-26-erlaubt-das-auslagern-von-wp-content/672/#comment-335848</link>
		<dc:creator>Frank Bültge</dc:creator>
		<pubDate>Sat, 25 Jul 2009 14:33:39 +0000</pubDate>
		<guid isPermaLink="false">http://bueltge.de/?p=672#comment-335848</guid>
		<description>@Helge: definitiv richtig, wobei der Scan des Themes und Backend mit Hilfe von Plugins erfolgen kann, Scan des Themes kann WP-Scanner leisten.</description>
		<content:encoded><![CDATA[<p>@Helge: definitiv richtig, wobei der Scan des Themes und Backend mit Hilfe von Plugins erfolgen kann, Scan des Themes kann WP-Scanner leisten.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Xel</title>
		<link>http://bueltge.de/wordpress-26-erlaubt-das-auslagern-von-wp-content/672/#comment-335839</link>
		<dc:creator>Xel</dc:creator>
		<pubDate>Sat, 25 Jul 2009 12:34:31 +0000</pubDate>
		<guid isPermaLink="false">http://bueltge.de/?p=672#comment-335839</guid>
		<description>@Helge Staedtler:
Naja - es gibt zwei verschiedene Arten Angriffe.
Das eine ist der Gezielte und das andere der Massenangriff.
Gegen einen Gezielten kann man sich faktisch nicht schützen, weil irgendwo immer irgend eine Lücke sein wird. Man kann nur versuchen ihn so weit zu erschweren, dass er sich nicht lohnt, weil er zu teuer oder zu gefährlich wird.

Gegen einen Massenangriff kann man sich schützen in dem man vom Standardfall abweicht. Denn die wenigsten Massenangreifer gucken vorher in den Blog und passen Variablen an. Meist versucht der Angriff einfach nur allgemein möglichst viele Blog-Standardinstallationen zu Fall zu bringen und nutzt dazu einfach häufig verwendete Plugins. Dort wird dann einfach der Angriff gefahren ohne zu gucken ob das Plugin überhaupt existiert. Es wird ja teilweise nicht mal geguckt ob die Seite überhaupt mit dem CMS erstellt wurde, welches man angreift. Ich hab in den Server-Loggs ständig Joomla-Angriffe obwohl ich gar kein einziges Joomla habe.</description>
		<content:encoded><![CDATA[<p>@Helge Staedtler:<br />
Naja - es gibt zwei verschiedene Arten Angriffe.<br />
Das eine ist der Gezielte und das andere der Massenangriff.<br />
Gegen einen Gezielten kann man sich faktisch nicht schützen, weil irgendwo immer irgend eine Lücke sein wird. Man kann nur versuchen ihn so weit zu erschweren, dass er sich nicht lohnt, weil er zu teuer oder zu gefährlich wird.</p>
<p>Gegen einen Massenangriff kann man sich schützen in dem man vom Standardfall abweicht. Denn die wenigsten Massenangreifer gucken vorher in den Blog und passen Variablen an. Meist versucht der Angriff einfach nur allgemein möglichst viele Blog-Standardinstallationen zu Fall zu bringen und nutzt dazu einfach häufig verwendete Plugins. Dort wird dann einfach der Angriff gefahren ohne zu gucken ob das Plugin überhaupt existiert. Es wird ja teilweise nicht mal geguckt ob die Seite überhaupt mit dem CMS erstellt wurde, welches man angreift. Ich hab in den Server-Loggs ständig Joomla-Angriffe obwohl ich gar kein einziges Joomla habe.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Helge Staedtler</title>
		<link>http://bueltge.de/wordpress-26-erlaubt-das-auslagern-von-wp-content/672/#comment-335817</link>
		<dc:creator>Helge Staedtler</dc:creator>
		<pubDate>Sat, 25 Jul 2009 09:17:45 +0000</pubDate>
		<guid isPermaLink="false">http://bueltge.de/?p=672#comment-335817</guid>
		<description>Hmm, ich hab mir jetzt die ganzen Kommentare zu dem Aspekt Sicherheit und wp-content durchgelesen, aber *Klick* hat es bei mir nicht gemacht. Ich meine wenn ich wp-content oder das plugins-directory jetzt umbenennen kann was soll das an Sicherheit bringen? Jeder der einen Systemangriff plant lässt sich doch erstmal eine normale Blogseite liefern. In dem Moment, wo auch nur ein Bild aus einem Theme (dessen Ordner ja in wp-content/themes liegt) geladen wird ist die Sache bzw. der Pfad klar, wie &quot;wp-content&quot; auf diesem Blogsystem heißt und wo es liegt.

Der Sicherheitsgewinn ist gleich Null! Wenn ich &#039;nen Angriff planen würde, würde ich als erstes eine Pfadanalyse machen, denn auffallend häufige Fehler bei der Ressourcen-Abfrage und Auslieferung des Webservers fallen dem Admin unter Umständen verdächtig auf (Errorlog schwillt an, Performanz lässt nach).... und als Angreifer will man das ja wirklich als letztes, auffallen.

Für mich ist die deutlich größte Sicherheitslücke derzeit das Theme. Themes werden von zig verschiedenen Seiten angeboten, haben teilweise wirklich krasse Fehler und eröffnen einem Angreifer - der es schafft sein Theme zu verbreiten durch das trojanische Pferd &quot;Sexy Theme&quot; - Vollzugriff auf das Blog. Erschwerend kommt hinzu, dass das Theme soviele .PHP-Files mitbringt. Da ist es schwer einen ersten Sicherheitscheck mal eben so zu machen. In ein plugin-File schau ich da schon eher vorher mal rein.

Durch die Theme-Hintertür ist auch in meinem Blog der REMV.php-Angriff gelaufen und das Ding fand ich wirklich intelligent programmiert, weil es sich durch ständiges Hin-und-her-Kopieren und das Umbenennen von Themedateien in unsichtbare Dateien erfolgreich getarnt hat und nur NICHT-Admin-Usern gegenüber auffällig agiert hat. Das Ding zu erkennen und loszuwerden war wirklich anstrengend!

Ich fände einen Theme-Test sinnvoll, der zumindest mal alle Files (auch vermeintliche Bild-Dateien, die möglicherweise php enthalten) auf verdächtigen Code hin untersucht (z.B. auf merkwürdige externe URLs hin von denen irgendwas nachgeladen wird). Auch die Konformität für Einbindungshooks wp_head, wp_footer, wp_meta usw. wäre mal ein Anfang die Qualität der Themekompatibilität deutlich zu erhöhen. Dafür muss man sonst mächtig Aufwand treiben für Workarounds.

Meine 2 Cent.</description>
		<content:encoded><![CDATA[<p>Hmm, ich hab mir jetzt die ganzen Kommentare zu dem Aspekt Sicherheit und wp-content durchgelesen, aber *Klick* hat es bei mir nicht gemacht. Ich meine wenn ich wp-content oder das plugins-directory jetzt umbenennen kann was soll das an Sicherheit bringen? Jeder der einen Systemangriff plant lässt sich doch erstmal eine normale Blogseite liefern. In dem Moment, wo auch nur ein Bild aus einem Theme (dessen Ordner ja in wp-content/themes liegt) geladen wird ist die Sache bzw. der Pfad klar, wie "wp-content" auf diesem Blogsystem heißt und wo es liegt.</p>
<p>Der Sicherheitsgewinn ist gleich Null! Wenn ich 'nen Angriff planen würde, würde ich als erstes eine Pfadanalyse machen, denn auffallend häufige Fehler bei der Ressourcen-Abfrage und Auslieferung des Webservers fallen dem Admin unter Umständen verdächtig auf (Errorlog schwillt an, Performanz lässt nach).... und als Angreifer will man das ja wirklich als letztes, auffallen.</p>
<p>Für mich ist die deutlich größte Sicherheitslücke derzeit das Theme. Themes werden von zig verschiedenen Seiten angeboten, haben teilweise wirklich krasse Fehler und eröffnen einem Angreifer - der es schafft sein Theme zu verbreiten durch das trojanische Pferd "Sexy Theme" - Vollzugriff auf das Blog. Erschwerend kommt hinzu, dass das Theme soviele .PHP-Files mitbringt. Da ist es schwer einen ersten Sicherheitscheck mal eben so zu machen. In ein plugin-File schau ich da schon eher vorher mal rein.</p>
<p>Durch die Theme-Hintertür ist auch in meinem Blog der REMV.php-Angriff gelaufen und das Ding fand ich wirklich intelligent programmiert, weil es sich durch ständiges Hin-und-her-Kopieren und das Umbenennen von Themedateien in unsichtbare Dateien erfolgreich getarnt hat und nur NICHT-Admin-Usern gegenüber auffällig agiert hat. Das Ding zu erkennen und loszuwerden war wirklich anstrengend!</p>
<p>Ich fände einen Theme-Test sinnvoll, der zumindest mal alle Files (auch vermeintliche Bild-Dateien, die möglicherweise php enthalten) auf verdächtigen Code hin untersucht (z.B. auf merkwürdige externe URLs hin von denen irgendwas nachgeladen wird). Auch die Konformität für Einbindungshooks wp_head, wp_footer, wp_meta usw. wäre mal ein Anfang die Qualität der Themekompatibilität deutlich zu erhöhen. Dafür muss man sonst mächtig Aufwand treiben für Workarounds.</p>
<p>Meine 2 Cent.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Wordpress wp-content auslagern Sicherheitsrisiko? - Server Support Forum</title>
		<link>http://bueltge.de/wordpress-26-erlaubt-das-auslagern-von-wp-content/672/#comment-318311</link>
		<dc:creator>Wordpress wp-content auslagern Sicherheitsrisiko? - Server Support Forum</dc:creator>
		<pubDate>Mon, 23 Feb 2009 00:05:02 +0000</pubDate>
		<guid isPermaLink="false">http://bueltge.de/?p=672#comment-318311</guid>
		<description>[...] Zitat von Mordor   Ich verstehe also auch nicht ganz, wie das generell funktionieren soll?!    Darauf f</description>
		<content:encoded><![CDATA[<p>[...] Zitat von Mordor   Ich verstehe also auch nicht ganz, wie das generell funktionieren soll?!    Darauf f</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Sicherheit / WordPress absichern</title>
		<link>http://bueltge.de/wordpress-26-erlaubt-das-auslagern-von-wp-content/672/#comment-287922</link>
		<dc:creator>Sicherheit / WordPress absichern</dc:creator>
		<pubDate>Wed, 01 Oct 2008 16:14:06 +0000</pubDate>
		<guid isPermaLink="false">http://bueltge.de/?p=672#comment-287922</guid>
		<description>[...] zurückgreifen können. Ein ausführliches Tutorial hierzu ist mit Frank Bueltges Artikel WordPress 2.6 erlaubt das AUslagern von wp-content zu [...]</description>
		<content:encoded><![CDATA[<p>[...] zurückgreifen können. Ein ausführliches Tutorial hierzu ist mit Frank Bueltges Artikel WordPress 2.6 erlaubt das AUslagern von wp-content zu [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Schusterjunge&#187; Blogarchiv &#187; Update auf WP 2.6.1</title>
		<link>http://bueltge.de/wordpress-26-erlaubt-das-auslagern-von-wp-content/672/#comment-282117</link>
		<dc:creator>Schusterjunge&#187; Blogarchiv &#187; Update auf WP 2.6.1</dc:creator>
		<pubDate>Tue, 02 Sep 2008 22:55:29 +0000</pubDate>
		<guid isPermaLink="false">http://bueltge.de/?p=672#comment-282117</guid>
		<description>[...] Die wp-config.php kann man jetzt auch eine Ebene höher einordnen. Sinnvoll, wenn diese Ebene im nicht-öffentlichen Bereich des Servers liegt. Auch der Ordner wp-content, in welchem die Plugins, Themes und Uploads liegen, kann nun ausgelagert und umbenannt werden. Eine Anleitung dazu findet sich hier. [...]</description>
		<content:encoded><![CDATA[<p>[...] Die wp-config.php kann man jetzt auch eine Ebene höher einordnen. Sinnvoll, wenn diese Ebene im nicht-öffentlichen Bereich des Servers liegt. Auch der Ordner wp-content, in welchem die Plugins, Themes und Uploads liegen, kann nun ausgelagert und umbenannt werden. Eine Anleitung dazu findet sich hier. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Wordpress 2.6 RC1 erschienen - Update, Betrachtung, Standard, Version, Deaktivierung, Wordpress, jQuery, “Aktive”, Checkboxen, Mehrfachanwahl, Plugins”, Aufteilung, Galerie, Gravatare, Möglichkeiten, Drag, Drop, Umstrukturierung, Plugin-Bereiches;,</title>
		<link>http://bueltge.de/wordpress-26-erlaubt-das-auslagern-von-wp-content/672/#comment-279499</link>
		<dc:creator>Wordpress 2.6 RC1 erschienen - Update, Betrachtung, Standard, Version, Deaktivierung, Wordpress, jQuery, “Aktive”, Checkboxen, Mehrfachanwahl, Plugins”, Aufteilung, Galerie, Gravatare, Möglichkeiten, Drag, Drop, Umstrukturierung, Plugin-Bereiches;,</dc:creator>
		<pubDate>Mon, 18 Aug 2008 16:40:14 +0000</pubDate>
		<guid isPermaLink="false">http://bueltge.de/?p=672#comment-279499</guid>
		<description>[...] wp-content kann verschoben werden … mehr [...]</description>
		<content:encoded><![CDATA[<p>[...] wp-content kann verschoben werden … mehr [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Wir fahren mit Wordpress 2.6 &#124; Promoter Blog</title>
		<link>http://bueltge.de/wordpress-26-erlaubt-das-auslagern-von-wp-content/672/#comment-277505</link>
		<dc:creator>Wir fahren mit Wordpress 2.6 &#124; Promoter Blog</dc:creator>
		<pubDate>Tue, 05 Aug 2008 10:19:22 +0000</pubDate>
		<guid isPermaLink="false">http://bueltge.de/?p=672#comment-277505</guid>
		<description>[...] wp-content kann verschoben werden … mehr [...]</description>
		<content:encoded><![CDATA[<p>[...] wp-content kann verschoben werden … mehr [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Xel</title>
		<link>http://bueltge.de/wordpress-26-erlaubt-das-auslagern-von-wp-content/672/#comment-276217</link>
		<dc:creator>Xel</dc:creator>
		<pubDate>Tue, 29 Jul 2008 23:24:57 +0000</pubDate>
		<guid isPermaLink="false">http://bueltge.de/?p=672#comment-276217</guid>
		<description>Hmm interessant:

In der i10n.php (in wp-includes) steht:
&lt;code&gt;
$mofile = ABSPATH . LANGDIR . &quot;/$locale.mo&quot;;
&lt;/pre&gt;
LANGDIR wird, sofern es nicht bereits definiert wurde in wp-settings.php definiert:

&lt;code&gt;
	define(&#039;WP_LANG_DIR&#039;, WP_CONTENT_DIR . &#039;/languages&#039;); // no leading slash, no trailing slash, full path, not relative to ABSPATH
	if (!defined(&#039;LANGDIR&#039;)) {
		// Old static relative path maintained for limited backwards compatibility - won&#039;t work in some cases
		define(&#039;LANGDIR&#039;, &#039;wp-content/languages&#039;);
	}
&lt;/pre&gt;

Wenn ich das jetzt nicht falsch sehe, bedeutet das, dass WP_LANG_DIR - der eigentlich richtige Pfad - garnicht für die Auswahl des mo-Files verwendet wird.

Verwendet wird es allerdings ein einziges Mal in der wp-settings.php (und laut meiner Suche in keiner weiteren WordPress Datei!):
&lt;code&gt;
$locale = get_locale();
$locale_file = WP_LANG_DIR . &quot;/$locale.php&quot;;
if ( is_readable($locale_file) )
	require_once($locale_file);
&lt;/pre&gt;
Wobei anzumerken ist, dass in der aktuellen deutschen 2.6 keine de_DE.php oder ähnliches im languages Verzeichnis liegt und dementsprechend dort auch keine Möglichkeit besteht um bereits im Vorraus LANGDIR passend zu definieren.

Insgesamt ein Kuriosum, aber es wundert mich jedenfalls nicht, dass bei verschobenem/umbenanntem wp-content Ordner die Sprache nicht mehr passt.

Möglich natürlich, dass die de_DE.php Datei fehlt und das der Fehler ist (daran glaube ich aber nicht, die war für Version 1.5 gedacht, als noch keine mo Files verwendet wurden.

Wahrscheinlicher ist, dass in der i10n.php vergessen wurde den neuen Pfad zu verwenden, sofern dort eine passende Datei vorhanden ist und nur ansonsten im wp-content/languages Pfad nachzuschauen.

Mathias:
Zu deiner Beruhigung:
Sofern im wp-content-Verzeichnis kein Ordner languages gefunden wird, wird er Ordner in wp-includes verwendet (allerdings ohne zu prüfen, ob er existiert).</description>
		<content:encoded><![CDATA[<p>Hmm interessant:</p>
<p>In der i10n.php (in wp-includes) steht:<br />
<code><br />
$mofile = ABSPATH . LANGDIR . "/$locale.mo";

<p>LANGDIR wird, sofern es nicht bereits definiert wurde in wp-settings.php definiert:</p>
<p><code><br />
	define('WP_LANG_DIR', WP_CONTENT_DIR . '/languages'); // no leading slash, no trailing slash, full path, not relative to ABSPATH<br />
	if (!defined('LANGDIR')) {<br />
		// Old static relative path maintained for limited backwards compatibility - won't work in some cases<br />
		define('LANGDIR', 'wp-content/languages');<br />
	}

<p>Wenn ich das jetzt nicht falsch sehe, bedeutet das, dass WP_LANG_DIR - der eigentlich richtige Pfad - garnicht für die Auswahl des mo-Files verwendet wird.</p>
<p>Verwendet wird es allerdings ein einziges Mal in der wp-settings.php (und laut meiner Suche in keiner weiteren WordPress Datei!):<br />
<code><br />
$locale = get_locale();<br />
$locale_file = WP_LANG_DIR . "/$locale.php";<br />
if ( is_readable($locale_file) )<br />
	require_once($locale_file);

<p>Wobei anzumerken ist, dass in der aktuellen deutschen 2.6 keine de_DE.php oder ähnliches im languages Verzeichnis liegt und dementsprechend dort auch keine Möglichkeit besteht um bereits im Vorraus LANGDIR passend zu definieren.</p>
<p>Insgesamt ein Kuriosum, aber es wundert mich jedenfalls nicht, dass bei verschobenem/umbenanntem wp-content Ordner die Sprache nicht mehr passt.</p>
<p>Möglich natürlich, dass die de_DE.php Datei fehlt und das der Fehler ist (daran glaube ich aber nicht, die war für Version 1.5 gedacht, als noch keine mo Files verwendet wurden.</p>
<p>Wahrscheinlicher ist, dass in der i10n.php vergessen wurde den neuen Pfad zu verwenden, sofern dort eine passende Datei vorhanden ist und nur ansonsten im wp-content/languages Pfad nachzuschauen.</p>
<p>Mathias:<br />
Zu deiner Beruhigung:<br />
Sofern im wp-content-Verzeichnis kein Ordner languages gefunden wird, wird er Ordner in wp-includes verwendet (allerdings ohne zu prüfen, ob er existiert).</p>
</code></p></code></p></code></p>]]></content:encoded>
	</item>
	<item>
		<title>Von: Frank Bültge</title>
		<link>http://bueltge.de/wordpress-26-erlaubt-das-auslagern-von-wp-content/672/#comment-276211</link>
		<dc:creator>Frank Bültge</dc:creator>
		<pubDate>Tue, 29 Jul 2008 22:52:39 +0000</pubDate>
		<guid isPermaLink="false">http://bueltge.de/?p=672#comment-276211</guid>
		<description>@Mathias: seit Version 2.5 gehört sie in den Ordner wp-content/languages/</description>
		<content:encoded><![CDATA[<p>@Mathias: seit Version 2.5 gehört sie in den Ordner wp-content/languages/</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Mathias</title>
		<link>http://bueltge.de/wordpress-26-erlaubt-das-auslagern-von-wp-content/672/#comment-276168</link>
		<dc:creator>Mathias</dc:creator>
		<pubDate>Tue, 29 Jul 2008 18:13:48 +0000</pubDate>
		<guid isPermaLink="false">http://bueltge.de/?p=672#comment-276168</guid>
		<description>OK, mein Fehler. Ich habe deinen Kommentar falsch zugeordnet. Zum Thema Sprachdatei bliebe aber zu sagen, dass diese eigentlich in den Ordner &quot;wp-includes/languages&quot; gehört. Was hat sie in &quot;wp-content&quot; zu suchen?</description>
		<content:encoded><![CDATA[<p>OK, mein Fehler. Ich habe deinen Kommentar falsch zugeordnet. Zum Thema Sprachdatei bliebe aber zu sagen, dass diese eigentlich in den Ordner "wp-includes/languages" gehört. Was hat sie in "wp-content" zu suchen?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Xel</title>
		<link>http://bueltge.de/wordpress-26-erlaubt-das-auslagern-von-wp-content/672/#comment-276105</link>
		<dc:creator>Xel</dc:creator>
		<pubDate>Tue, 29 Jul 2008 11:14:08 +0000</pubDate>
		<guid isPermaLink="false">http://bueltge.de/?p=672#comment-276105</guid>
		<description>Mathias: Mein Kommentar bezog sich auf
&lt;blockquote&gt;
Ich bin komplett neu in Wordpress und ins Bloggen eingestiegen. Nachdem ich den Tipp angewendet hatte und ein Theme und zwei Plugins angepasst habe, musste ich feststellen, dass WP jetzt nur noch Englisch spricht in Admin und Public. Ich hab jetzt erstmal den Ordner mein-inhaltsordner/languages nach wp-content/languages kopiert, jetzt ist&#039;s wieder Deutsch.

Ist aber sicher nicht der richtige Weg.
&lt;/blockquote&gt;
und da ich mal stark davon ausgehe, dass das richtig definiert wurde (ansonsten würden sämtliche Plugins und Themes ja garnicht funktionieren bzw nicht mal gefunden werden, was sicherlich eher aufgefallen währe, als das der Blog auf english ist), bleibt eigentlich nur noch die Möglichkeit, dass WP die Sprachdatei noch direkt sucht und nicht auf die Änderung des wp-content verzeichnisses reagiert.

Kann natürlich sein, dass ich mich täusche.

Hat inzwischen eigentlich mal jemand ausprobiert, was passiert, wenn der wp-content außerhalb des Webroot ist? Glaub kaum, dass das funktioniert.</description>
		<content:encoded><![CDATA[<p>Mathias: Mein Kommentar bezog sich auf</p>
<blockquote><p>
Ich bin komplett neu in WordPress und ins Bloggen eingestiegen. Nachdem ich den Tipp angewendet hatte und ein Theme und zwei Plugins angepasst habe, musste ich feststellen, dass WP jetzt nur noch Englisch spricht in Admin und Public. Ich hab jetzt erstmal den Ordner mein-inhaltsordner/languages nach wp-content/languages kopiert, jetzt ist's wieder Deutsch.</p>
<p>Ist aber sicher nicht der richtige Weg.
</p></blockquote>
<p>und da ich mal stark davon ausgehe, dass das richtig definiert wurde (ansonsten würden sämtliche Plugins und Themes ja garnicht funktionieren bzw nicht mal gefunden werden, was sicherlich eher aufgefallen währe, als das der Blog auf english ist), bleibt eigentlich nur noch die Möglichkeit, dass WP die Sprachdatei noch direkt sucht und nicht auf die Änderung des wp-content verzeichnisses reagiert.</p>
<p>Kann natürlich sein, dass ich mich täusche.</p>
<p>Hat inzwischen eigentlich mal jemand ausprobiert, was passiert, wenn der wp-content außerhalb des Webroot ist? Glaub kaum, dass das funktioniert.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Mathias</title>
		<link>http://bueltge.de/wordpress-26-erlaubt-das-auslagern-von-wp-content/672/#comment-275971</link>
		<dc:creator>Mathias</dc:creator>
		<pubDate>Mon, 28 Jul 2008 19:10:12 +0000</pubDate>
		<guid isPermaLink="false">http://bueltge.de/?p=672#comment-275971</guid>
		<description>&lt;blockquote&gt;Wird möglicherweise n bislang unbekannter Bug sein&lt;/blockquote&gt;
Das glaube ich nicht. Wenn ich mir die &quot;wp-settings.php&quot; anschaue, wird ziemlich am Schluss WordPress initialisiert. Das heißt, wenn bis dahin die notwendigen Konstanten nicht deklariert wurden, spielt es danach auch keine Rolle mehr.

&lt;blockquote&gt;denn die Betas kommen ja eigentlich nur auf Englisch raus bzw. müssen sogar per SVN gezogen werden&lt;/blockquote&gt;
Ich habe mir einmal die Mühe gemacht, die SVN 2.5 komplett neu zu übersetzen. Damals gab es offiziell nur die Sprachdatei für WP 2.3.x. Die konnte man aber nicht nehmen, denn die Unterschiede zur SVN-Version waren einfach zu groß. Und (mit Verlaub!) sonderlich begeistert war ich vom Sprachstil in der deutschen Datei ohnehin nicht.
Seitdem kann ich nicht klagen. Bei mir läuft die SVN 2.7 im Livebetrieb in deutscher Sprache. ;)</description>
		<content:encoded><![CDATA[<blockquote><p>Wird möglicherweise n bislang unbekannter Bug sein</p></blockquote>
<p>Das glaube ich nicht. Wenn ich mir die "wp-settings.php" anschaue, wird ziemlich am Schluss WordPress initialisiert. Das heißt, wenn bis dahin die notwendigen Konstanten nicht deklariert wurden, spielt es danach auch keine Rolle mehr.</p>
<blockquote><p>denn die Betas kommen ja eigentlich nur auf Englisch raus bzw. müssen sogar per SVN gezogen werden</p></blockquote>
<p>Ich habe mir einmal die Mühe gemacht, die SVN 2.5 komplett neu zu übersetzen. Damals gab es offiziell nur die Sprachdatei für WP 2.3.x. Die konnte man aber nicht nehmen, denn die Unterschiede zur SVN-Version waren einfach zu groß. Und (mit Verlaub!) sonderlich begeistert war ich vom Sprachstil in der deutschen Datei ohnehin nicht.<br />
Seitdem kann ich nicht klagen. Bei mir läuft die SVN 2.7 im Livebetrieb in deutscher Sprache. <img src='http://bueltge.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
</channel>
</rss>

