<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" 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:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Kau-Boys blog</title>
	
	<link>http://kau-boys.de</link>
	<description>Webdevelopment and more</description>
	<lastBuildDate>Fri, 16 Mar 2012 19:15:48 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/Kau-boysBlog" /><feedburner:info uri="kau-boysblog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>Kau-boysBlog</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>WordPress Core Strings ohne Verlust beim nächsten Update überschreiben</title>
		<link>http://feedproxy.google.com/~r/Kau-boysBlog/~3/zwljyFCKfjA/wordpress-core-strings-ohne-verlust-beim-naechsten-update-ueberschreiben</link>
		<comments>http://kau-boys.de/1498/wordpress/wordpress-core-strings-ohne-verlust-beim-naechsten-update-ueberschreiben#comments</comments>
		<pubDate>Fri, 16 Mar 2012 19:15:48 +0000</pubDate>
		<dc:creator>Bernhard</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Administration]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[Snippet]]></category>
		<category><![CDATA[Theme]]></category>

		<guid isPermaLink="false">http://kau-boys.de/?p=1498</guid>
		<description><![CDATA[Auf dem letzten WP Meetup Potsdam hat Caspar eine kleine Einführung in das Thema Multisite gegeben. Dabei päsentierte er auch kurz das Einrichten eines neuen Blogs im Netzwerk. Als er sich im Dashboard angemeldet hatte wies er uns auch darauf hin, dass er die Bezeichnung &#8220;Dashboard&#8221; in &#8220;Übersicht&#8221; umbenannt hat, da dies wohl für einige [...]]]></description>
			<content:encoded><![CDATA[<p>Auf dem letzten <a href="http://wpmeetup-potsdam.de/160/review-wpmeetup-slides-multisite-13-3-2012">WP Meetup Potsdam</a> hat <a href="http://glueckpress.com">Caspar</a> eine kleine <a href="http://glueckpress.com/blog/1014/wordpress-multisite-wp-meetup-potsdam">Einführung in das Thema Multisite</a> gegeben. Dabei päsentierte er auch kurz das Einrichten eines neuen Blogs im Netzwerk. Als er sich im Dashboard angemeldet hatte wies er uns auch darauf hin, dass er die Bezeichnung &#8220;Dashboard&#8221; in &#8220;Übersicht&#8221; umbenannt hat, da dies wohl für einige Kunden besser verstädnlich ist.</p>
<h2>Der falsche Weg</h2>
<p>Auf die Nachfrage, wie er es denn umbenannt hätte, musste er dann zugeben, dass er die originale Datei überschrieben hat. Oder er hatte sie komplett kopiert und dann den einen String geändert, das weiß ich nicht mehr so genau. Aber auf jeden Fall waren wir uns alle einige, dass dies eine sehr schlechte Lösung des Problems ist. Spätestens beim nächsten großen Update, wie z.B. bald auf Version 3.4, wird auch die Übersetzungsdatei wohl wieder überschrieben werden müssen. Alle geänderten Übersetzungen sind somit verloren und müssen erneut überschrieben werden. Ich war mit aber sehr sicher, dass es dafür eine bessere Lösung gibt.</p>
<h2>Der richtige Weg</h2>
<p>Vor einiger Zeit habe ich dem Artikel <a href="http://kau-boys.de/1341/wordpress/lokalisierung-fuer-child-themes-am-beispiel-von-thematic">Lokalisierung für Child Themes am Beispiel von Thematic</a> beschrieben, wie man in einem Child-Theme die Übersetzungen für Strings im Parent Theme überschreiben kann. Ich war mir sehr sicher, dass dies auch für die WordPress Core Strings funktionieren muss. Bei Core-Übersetzungen wird ja in den Übersetzungsfunktionen keine Domain angegeben. Daher war die erste Vermutung, dass man einfach einen leeren String für das Einbinden der Übersetzungsdatei verwenden muss. Aber das war nicht ganz korrekt. Man muss den String &#8220;default&#8221; als Parameter verwenden. Damit ist es dann möglich, eine eigene Übersetzungsdatei zu laden. In dieser Datei müssen aber nicht alle Strings enthalten sein. Es reicht aus, wenn man nur die zu überschreibenden aufführt. Die Einbindung dieser mo-Datei geschieht dann wie folgt:</p>
<pre class="brush: php; gutter: false; title: ; notranslate">
load_textdomain( 'default', dirname( __FILE__ ).'/'.get_locale().'.mo' );
</pre>
<p>In diesem Beispiel befindet sich dann z.B: die Datei de_DE.mo im selben Verzeichnis wie die Datei, in die diese Zeile eingefügt wurde. Dies kann in eurem Theme aber auch in einem Plugin geschehen. Im Falle von Capsar ist es sogar am sinnvollsten, das ganze als &#8220;must-use&#8221; Plugin im Ordner <code>/wp-contents/mu-plugins/</code> abzulegen. Ich habe das ganze natürlich auch mal für euch fertig vorbereitet und ihr könnt es hier herunterladen und einfach als Plugin installieren:</p>
<p class="aligncenter">
<a href="http://kau-boys.de/wp-content/uploads/2012/03/translation-override.zip" class="awesome large breakerbay" style="margin-left:20px;">Download</a>
</p>
<h2>Fazit</h2>
<p>Auch hier hat sich wieder gezeigt, wie flexibel WordPress ist. Auch mein Grundsatz &#8220;Don&#8217;t hack the core, never!&#8221; (auf Deutsch würde man wohl sagen &#8220;Nur gucken, nicht anfassen!&#8221;) wurde dadurch mal wieder bestätigt. Ich habe bisher wirklich noch kein Problem gefunden, dass ich nicht durch ein paar Zeilen Code in der functions.php Datei oder durch ein kleines Plugin lösen konnte, ohne den Core anfassen zu müssen. Das einizige, was einem hier noch passieren könnte ist eine Änderung des zu übersetzenden Strings in einer neuen Version. Dann müsste natürlich auch die Übersetzungsdatei angepasst werden. Aber eben auch nur die wenigen Strings darin und auch nur die, die sich geändert haben.</p>
<p>Was haltet ihr von meiner Lösung? Hättet ihr gedacht, dass so etwas mit nur einer Zeile Code möglich ist? Habt ihr vielleicht auch ähnlich tolle Fixes parat? Über Kommentare würde ich mich wie immer sehr freuen.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/sTn01idV8t_y24QL_HxkFTAilQk/0/da"><img src="http://feedads.g.doubleclick.net/~a/sTn01idV8t_y24QL_HxkFTAilQk/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/sTn01idV8t_y24QL_HxkFTAilQk/1/da"><img src="http://feedads.g.doubleclick.net/~a/sTn01idV8t_y24QL_HxkFTAilQk/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/Kau-boysBlog/~4/zwljyFCKfjA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://kau-boys.de/1498/wordpress/wordpress-core-strings-ohne-verlust-beim-naechsten-update-ueberschreiben/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://kau-boys.de/1498/wordpress/wordpress-core-strings-ohne-verlust-beim-naechsten-update-ueberschreiben?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=wordpress-core-strings-ohne-verlust-beim-naechsten-update-ueberschreiben</feedburner:origLink></item>
		<item>
		<title>Dropbox verschenkt 5GB zusätzlichen Speicherplatz</title>
		<link>http://feedproxy.google.com/~r/Kau-boysBlog/~3/yWI_NgtFGh8/dropbox-verschenkt-5gb-zusaetzlichen-speicherplatz</link>
		<comments>http://kau-boys.de/1486/software/dropbox-verschenkt-5gb-zusaetzlichen-speicherplatz#comments</comments>
		<pubDate>Wed, 08 Feb 2012 20:53:22 +0000</pubDate>
		<dc:creator>Bernhard</dc:creator>
				<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://kau-boys.de/?p=1486</guid>
		<description><![CDATA[Ich nutze schon seit längerem Dropbox zum synchornisieren wichtiger Daten. Da aber selbst meine 3GB ab und zu voll laufen und ich kein kostenpflichtes Angebot nutzen möchte, muss ich ab und zu wieder Dinge aus der Dropbox verschieben. Zur Zeit hat aber Dropbox eine Aktion. In einer neue Beta-Version kann man eine Funktion zum automatischen [...]]]></description>
			<content:encoded><![CDATA[<p>Ich nutze schon seit längerem <a href="http://db.tt/ebeFNP5">Dropbox</a> zum synchornisieren wichtiger Daten. Da aber selbst meine 3GB ab und zu voll laufen und ich kein kostenpflichtes Angebot nutzen möchte, muss ich ab und zu wieder Dinge aus der Dropbox verschieben.</p>
<p>Zur Zeit hat aber Dropbox eine Aktion. In einer neue Beta-Version kann man eine Funktion zum automatischen synchroniseren von Fotos auf einer Speicherkarte testen. <del datetime="2012-02-08T22:06:37+00:00">Wer an dem Beta-Test teilnimmt erhält automatisch 500MB zusätzlich.</del> <ins datetime="2012-02-08T22:06:37+00:00">Nachdem ich die Beta jetzt gestestet habe sieht es so aus, als bekommt man die ersten 500MB auch erst nach dem Upload des ersten Bildes.</ins> Die insgesamt zusätzlichen 5GB erhält man, indem man Bilder hochlädt. Pro 500MB an Bildern, die man hochlädt, bekommt man weitere 500MB zusätzlich gutgeschrieben. Der Zusatzspeicher kann auch nach Ablauf der Aktion weiter genutzt werden.</p>
<p>Wer also auch seinen Speicherplatz erhöhen möchte, findet in diesem Forum Post die Downloads der Beta-Versionen für Windows, Linux und Mac: <a href="http://forums.dropbox.com/topic.php?id=53544">Experimental Forum Build &#8211; 1.3.14</a>. Weitere Informationen gibt es auf den <a href="https://www.dropbox.com/help/288">Hilfeseiten von Dropbox</a>.</p>
<p>Wer noch kein Dropbox-Konto hat und gleich mit 250MB mehr starten möchte, kann diesen Link benutzen: <a href="http://db.tt/ebeFNP5">Bei Dropbox anmelden</a>.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/Dc3FvEe5w-zHubYab6z-v4OpGRw/0/da"><img src="http://feedads.g.doubleclick.net/~a/Dc3FvEe5w-zHubYab6z-v4OpGRw/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/Dc3FvEe5w-zHubYab6z-v4OpGRw/1/da"><img src="http://feedads.g.doubleclick.net/~a/Dc3FvEe5w-zHubYab6z-v4OpGRw/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/Kau-boysBlog/~4/yWI_NgtFGh8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://kau-boys.de/1486/software/dropbox-verschenkt-5gb-zusaetzlichen-speicherplatz/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://kau-boys.de/1486/software/dropbox-verschenkt-5gb-zusaetzlichen-speicherplatz?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=dropbox-verschenkt-5gb-zusaetzlichen-speicherplatz</feedburner:origLink></item>
		<item>
		<title>Mein erstes WP Meetup in Potsdam</title>
		<link>http://feedproxy.google.com/~r/Kau-boysBlog/~3/icH1rOYm1JM/mein-erstes-wp-meetup-in-potsdam</link>
		<comments>http://kau-boys.de/1477/wordpress/mein-erstes-wp-meetup-in-potsdam#comments</comments>
		<pubDate>Sat, 21 Jan 2012 17:59:41 +0000</pubDate>
		<dc:creator>Bernhard</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://kau-boys.de/?p=1477</guid>
		<description><![CDATA[Wie einige von euch wissen, war ich die letzten beiden Jahre auf den WordCamps in Berlin und Köln. Beide waren sehr unterschiedlich, aber ich habe bei beiden neue Dinge gelernt und nette Leute kennengelernt. Aber was macht man nun die restlichen 11 Monate im Jahr, während man auf das nächste WordCamp wartet? Die Anwort: WP [...]]]></description>
			<content:encoded><![CDATA[<p>Wie einige von euch wissen, war ich die letzten beiden Jahre auf den WordCamps in Berlin und Köln. Beide waren sehr unterschiedlich, aber ich habe bei beiden neue Dinge gelernt und nette Leute kennengelernt. Aber was macht man nun die restlichen 11 Monate im Jahr, während man auf das nächste WordCamp wartet? Die Anwort: WP Meetups. Hier trifft man Gleichgesinnte in einer sehr lockeren Atmosphäre und tauscht sich über ein bestimmtes Thema oder allgemein über WordPress aus.</p>
<p>Am Mittwoch hat es mich also vor die Tore der Hauptstadt gezogen und trotz langer Anreise hat es sich gelohnt. Einen Bereicht über die Teilnehmer inkl. Foto findet ihr in <a href="http://glueckpress.com/blog/813/zweites-wp-meetup-potsdam-the-boys-are-back-in-town">dem Beitrag von Caspar</a>, der einer der beiden Initiatoren des Potsdamer WP Meetups ist. Es gibt auch eine <a href="https://www.facebook.com/pages/WP-Meetup-Potsdam/184177505006801">Facebook Seite</a> sowie eine <a href="https://plus.google.com/116584758544404947109/posts">Google+ Seite</a> zum Potsdamer WP Meetup. Dort könnt ihr immer nachlesen, wass das nächste WP Meetup stattfindet und was dort als Thema vorgeschlagen wird. Das nächste findet am <strong>14. Februar 2012</strong> statt und so wie es im Moment aussieht werde ich wohl zum Thema &#8220;Grundlagen der Plugin-Programmierung&#8221; einen kleinen Vortrag halten. Wer mich also mal im &#8220;real life&#8221; treffen möchte und noch dazu etwas zur Plugin-Programmierung erfahren möchte, der muss nur noch seiner Freundin oder seinem Freund erklären, wieso er am Valentinstag nicht da ist <img src='http://kau-boys.de/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>

<p><a href="http://feedads.g.doubleclick.net/~a/QrAhJK5cHM600IRlBmj0At4VIX0/0/da"><img src="http://feedads.g.doubleclick.net/~a/QrAhJK5cHM600IRlBmj0At4VIX0/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/QrAhJK5cHM600IRlBmj0At4VIX0/1/da"><img src="http://feedads.g.doubleclick.net/~a/QrAhJK5cHM600IRlBmj0At4VIX0/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/Kau-boysBlog/~4/icH1rOYm1JM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://kau-boys.de/1477/wordpress/mein-erstes-wp-meetup-in-potsdam/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://kau-boys.de/1477/wordpress/mein-erstes-wp-meetup-in-potsdam?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=mein-erstes-wp-meetup-in-potsdam</feedburner:origLink></item>
		<item>
		<title>Schutz der Website oder des Blog vor massiven Zugriffen durch Crawler oder Angreifer</title>
		<link>http://feedproxy.google.com/~r/Kau-boysBlog/~3/SX_XRCn3cAA/schutz-der-website-oder-des-blog-vor-massiven-zugriffen-durch-crawler-oder-angreifer</link>
		<comments>http://kau-boys.de/1471/webserver/schutz-der-website-oder-des-blog-vor-massiven-zugriffen-durch-crawler-oder-angreifer#comments</comments>
		<pubDate>Tue, 17 Jan 2012 17:39:08 +0000</pubDate>
		<dc:creator>Bernhard</dc:creator>
				<category><![CDATA[Webserver]]></category>
		<category><![CDATA[Server]]></category>

		<guid isPermaLink="false">http://kau-boys.de/?p=1471</guid>
		<description><![CDATA[Heute bekam ich über mein Monitoring-Tool mal wieder eine Mail, dass mein Blog gerade down ist. Bei allen, die das vorhin getroffen hat, möchte ich mich hiermit auch entschuldigen. Aber wieso war mein Blog mal wieder down, wo er doch in letzter Zeit so gut gelaufen ist? Crawler: Plage oder Segen? Jeder von uns, der [...]]]></description>
			<content:encoded><![CDATA[<p>Heute bekam ich über mein Monitoring-Tool mal wieder eine Mail, dass mein Blog gerade down ist. Bei allen, die das vorhin getroffen hat, möchte ich mich hiermit auch entschuldigen. Aber wieso war mein Blog mal wieder down, wo er doch in letzter Zeit so gut gelaufen ist?</p>
<h2>Crawler: Plage oder Segen?</h2>
<p>Jeder von uns, der eine Website hat freut sich wohl, wenn den Google Crawler regelmäßig vorbeischaut und dabei möglichst alle neuen schon nach wenigen Minuten in den Index befördert. Da der Google Crawler dabei auch automatisch auf die Performance einer Website achtet um kleine Seiten nicht zu überlasten, fällt es auch nicht weiter auf, wenn er gerade am Werk ist.</p>
<p>Aber leider gibt es nicht nur den Google Crawler sondern mittlerweile eine unüberschaubar große Anzahl davon. Heute hat sich also ein neuer Crawler ans Werk gemacht und meine Website im Turbogang mit Anfragen beschossen. Das ist für den kleinen V-Server dann doch etwas zu viel geworden und er hatte innerhalb kürzester Zeit eine Auslastung von 4500%!</p>
<p><span id="more-1471"></span></p>
<p>Aber wie kann man sich nun vor solchen Crawlern schützen und möchte man das auch. Wenn man nämlich einen Crawler blockiert, dann kann der Dienst dahinter die Website nicht mehr indizieren und man verliert eventuell neue Nutzer, die auf die eigene Website über diesen Dienst aufmerksam geworden wären. Daher habe ich bei meiner Website nicht kategorisch alle Crawler außer denen der großen Suchmaschinen ausgeschlossen.</p>
<h2>Einzelne Crawler sperren</h2>
<p>Um Crawler den Zugriff auf die eigene Website zu verweigern setzt man eine Datei mit dem Namen <code>robots.txt</code> ein. Nachdem ich also den Namen des Crawlers über die Logfiles meines Servers rausgefunden hatte, konnte ich ihn zukünftig ausschließen, indem ich folgende Zeilen zur robots.txt Datei hinzugefügt habe:</p>
<pre class="brush: plain; gutter: false; title: ; notranslate">
User-agent: 008
Disallow: /
</pre>
<p>Das Problem an der Sache ich nur, dass der Crawler diese Änderung nicht sofort bemerkt. Eventuell prüft er die Datei ja nur einmal pro Stunde oder sogar nur einmal am Tag oder in der Woche. Bis er also aufhört die Website mit Anfragen zu überfluten müssen andere Maßnahmen getroffen werden.</p>
<h2>Zugriffe von einer IP-Adresse blockieren</h2>
<p>Ich musste also nun den Zugriff durch den Crawler anhand seiner IP-Adresse blockieren. Das geht am einfachsten über die Datei <code>.htaccess</code> die sich meistens im Wurzelverzeichnis der Website befindet. Dort habe ich folgende Zeilen eingefügt:</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">
# block potentially harming clients
order allow,deny
deny from 77.45.136.22
deny from 91.218.229.49
allow from all
# END: block potentially harming clients
</pre>
<p>Ich habe hier in diesem Beispiel zwei IP-Adressen blockiert. Was es mit der zweiten auf sich hat erkläre ich euch gleich. Ihr könnt hier also auch mehrere IP-Adressen blockieren, müsste aber pro Adresse eine Zeile verwenden. Damit verhindert ihr zwar die Anfrage selbst nicht (was auch nicht möglich ist) aber die Anfrage wird hierbei vom Apache-Server direkt zurückgewiesen, ohne dass beispielsweise WordPress etwas davon mitbekommt und anfängt die angeforderte Seite zu generieren. Wenn der Crawler intelligent ist, hört er auch recht bald auf eure Seite zu lesen und schaut sich vielleicht gleich mein eure veränderte robots.txt Datei an.</p>
<h2>Hilfe gegen die bösen Jungs da draußen</h2>
<p>Leider ist die robots.txt Datei nur eine Bitte an einen Crawler, was sie mit eurer Website tun soll. Er kann diese Information aber natürlich auch einfach ignorieren und eure Website trotzdem auslesen. Dann sollte das Blockieren mittels .htaccess Datei funktionieren, solange es ein Crawler ist, hinter dem keine bösen Absichten stecken. Denn sobald ihr den Crawler blockiert, bekommt er das natürlich mit. Er könnte dann einfach die IP-Adresse wechseln und erneut eure Seite belagern. Damit er das aber nicht so schnell mitbekommt, könnt ihr einen kleinen Trick anwenden. Oft werden solche Crawler von Programmieren eingesetzt, die den gesamten Inhalt eurer Website lesen wollen. Sie prüfen dabei vermutlich auch, ob die Seite erfolgreich angefordert werden konnte (Status Code 200) oder ob es eine erfolgreiche Weiterleitung gab (Status Code 301/302). Wieso also nicht dem Crawler einfach eine Seite zurückliefern, die Inhalt enthält, nicht aber den, den er wollte. Oder ihn einfach auf eine andere Seite weiterleiten.</p>
<p>Ich leite solche Angreifer gerne auf <a href="http://www.weirdity.com/internet/eoti.html">&#8220;Das Ende des Internets&#8221;</a> um. Das ist eine witzige Seite, die wie eine typische Internet Explorer-Fehlerseite aussieht und andeutet, dass man das Ende des Internet erreicht hat. Um das zu tun fügt ihr einfach folgende Zeilen in eure .htaccess Datei ein:</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">
# rewrite unwanted clients to the end of the internet
RewriteCond %{REMOTE_ADDR} ^77\.45\.136\.22 [OR]
RewriteCond %{REMOTE_ADDR} ^91\.218\.229\.49
RewriteRule ^(.*)$ http://www.weirdity.com/internet/eoti.html [L]
# END: rewrite unwanted clients to the end of the internet
</pre>
<p>Wenn ihr hier mehrere IP-Adressen angeben möchtet, dann müsst ihr hinter jeder Zeile, außer der letzten, noch <code>[OR]</code> einfügen. Außerdem müssten die Punkte mit einem vorangestellten Backslash markiert werden.</p>
<p>Wenn ihr zuvor schon den vorherigen Code zum Blockieren einer IP-Adresse eingefügt habt, dann müsst ihr diesen auskommentieren (indem ihr vor jede Zeile ein # Zeichen einfügt), damit die Zugriffe nicht mehr blockiert, sondern stattdessen umgeleitet werden.</p>
<p>Der Nutzer des Crawlers merkt  im Optimalfall davon nichts. Wenn er sich dann aber im Nachhinein die gecrawlten Seiten ansieht, wird er sich über deren Inhalt wohl sehr ärgern.</p>
<h2>Fazit</h2>
<p>Ich habe mit den hier beschriebenen schon eingie Angriffe bzw. unbeabsichtigte Überlastungen durch Crawler abwenden können. Auch mein Server läuft gerade wieder mit gemächlichen 5% Auslastung vor sich hin. Diese Maßnahmen schützen einen zwar nicht vor professionellen oder gut organisierten Angriffen, aber gegen die oft genannten &#8220;Script-Kiddies&#8221; sollten sie ausreichen. Die suchen sich dann einfach eine Website, die sie einfacher angreifen können.</p>
<p>Ach ja und jetzt noch zu der zweite IP-Adresse. Diese stammt wirklich von einem Angreifer. Der wollte aber nicht meinen Server durch viele Anfragen überlasten, sondern viel schlimmer noch, er wollte Schadcode auf meinen Server laden. Dazu hat er versucht die Sicherheitslücke in der TimThumb Funktion auszunutzen, auf die ich auch weiter unten in meinem Artikel <a href="http://kau-boys.de/1422/wordpress/plugins-und-sicherheit-sicherheitsluecke-in-filedownload-plugin-geschlossen">Plugins und Sicherheit: Sicherheitslücke in Filedownload Plugin geschlossen</a> kurz eingegangen bin. Aber zum Glück verwende ich kein Plugin oder Theme, das diese Funktion nutzt bzw. eine unsichere Version von TimThumb verwendet.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/NZJozKT2nSw-4_Ct5uQodkbzPEA/0/da"><img src="http://feedads.g.doubleclick.net/~a/NZJozKT2nSw-4_Ct5uQodkbzPEA/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/NZJozKT2nSw-4_Ct5uQodkbzPEA/1/da"><img src="http://feedads.g.doubleclick.net/~a/NZJozKT2nSw-4_Ct5uQodkbzPEA/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/Kau-boysBlog/~4/SX_XRCn3cAA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://kau-boys.de/1471/webserver/schutz-der-website-oder-des-blog-vor-massiven-zugriffen-durch-crawler-oder-angreifer/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://kau-boys.de/1471/webserver/schutz-der-website-oder-des-blog-vor-massiven-zugriffen-durch-crawler-oder-angreifer?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=schutz-der-website-oder-des-blog-vor-massiven-zugriffen-durch-crawler-oder-angreifer</feedburner:origLink></item>
		<item>
		<title>Handy verloren, was tun? Ein Survival-Guide für Android-Besitzer.</title>
		<link>http://feedproxy.google.com/~r/Kau-boysBlog/~3/Olf_DiFeLgg/handy-verloren-was-tun-ein-survival-guide-fuer-android-besitzer</link>
		<comments>http://kau-boys.de/1456/android/handy-verloren-was-tun-ein-survival-guide-fuer-android-besitzer#comments</comments>
		<pubDate>Sun, 04 Dec 2011 13:07:31 +0000</pubDate>
		<dc:creator>Bernhard</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[App]]></category>
		<category><![CDATA[Sicherheit]]></category>

		<guid isPermaLink="false">http://kau-boys.de/?p=1456</guid>
		<description><![CDATA[Am Freitag ist es mir passiert. Ich nahm nachts von der Weihnachtsfeier unseres Büros ein Taxi nach Hause. Als es ans bezahlen ging legte ich mein Handy kurz zur Seite um meinen Geldbeutel rauszuholen. Ich bezahlte, nahm meinen Rucksack und stieg aus. Keine 10 Sekunden später stellte ich dann fest, dass mein Handy nicht mehr [...]]]></description>
			<content:encoded><![CDATA[<p>Am Freitag ist es mir passiert. Ich nahm nachts von der Weihnachtsfeier unseres Büros ein Taxi nach Hause. Als es ans bezahlen ging legte ich mein Handy kurz zur Seite um meinen Geldbeutel rauszuholen. Ich bezahlte, nahm meinen Rucksack und stieg aus. Keine 10 Sekunden später stellte ich dann fest, dass mein Handy nicht mehr in meiner Tasche war. AH! Ich rannte zwar dem Taxi noch hinterher, aber es sah mich wohl in der Dunkelheit nicht winken.</p>
<h2>Die Rettung meines Handys</h2>
<p>Zum Glück hatte ich mir vor langer Zeit mal genau für einen solchen Fall eine App auf meinem Android installiert: die App <a href="https://market.android.com/details?id=com.androidlost">Android Lost</a>. Diese ist recht einfach einzurichten und bietet einem später über das Online-Portal <a href="http://www.androidlost.com/">www.androidlost.com</a> sehr viele Möglichkeiten zur Rettung seines geliebten Handys.</p>
<p><span id="more-1456"></span></p>
<p>Keine drei Minuten, nachdem ich den Verlust bemerkt hatte, saß ich zu Hause auch schon am Rechner und schickte meinem Handy erst einmal einen Alarm. Dieser wird auch dann abgespielt, wenn das Handy eigentlich auf Lautlos oder wie bei mir auf Vibration eingestellt ist. Wie mir der Taxifahrer später mitteilte, hat es ihn total erschreckt, da das Handy ja direkt hinter ihm auf dem Sitz lag. Anschließend schickte ich dann eine Textnachricht an das Handy, welche sofort angezeigt wird. Darin hinterließ ich meine Festnetznummer und ein paar Sekunden später klingelte auch schon das Telefon. Nach ungefähr 10min war der Spuck dann auch schon vorbei, ich hatte mein Smartphone zurück und der Taxifahrer eine weitere Fahrt und ein dickes Trinkgeld <img src='http://kau-boys.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Das ganze ging deshalb auch so schnell, weil ich noch UMTS aktiviert hatte. Aber selbst wenn es ausgeschaltet ist, hat man gute Chancen, denn man kann über ein anderes Handy Kommandos per SMS an das Handy schicken. Mit diesen kann man dann z.B. UMTS, GPS oder ähnliches aktivieren. Wenn man mal einen nicht so ehrlichen Finder erwischt hat, kann man auch den Speicher löschen oder Foto- oder Tonaufnahmen machen lassen und sich schicken lassen.</p>
<h2>Fazit</h2>
<p>Diese App ist für mich eine absolute Must-Have-App, die wirklich jeder Android-Besitzer installieren sollte. Sie ist kostenlos und auch die Nutzung des Service kostet nichts. Für iPhone gab es eine solche App lange nicht, da sie sehr viele Rechte benötigt, was auch klar ist, da sie ja auch den Speicher löschen kann. Da Apple hier aber Apps solche Rechte nicht einräumt, war man als iPhone-Besitzer nicht so gut geschützt. Jetzt gibt es die Funktion <a href="http://www.apple.com/de/iphone/built-in-apps/find-my-iphone.html">Mein iPhone suchen</a>, die einige Funktionen von Android Lost auch beherrscht, aber längst nicht alle.</p>
<p>Falls jemand von euch Erfahrungen mit der iPhone App hat oder vielleicht auch eine solche App für Windows Phone oder Blackberry kennt, dann würde ich mich über einen Kommentar sehr freuen.</p>
<p>P.S. Für die Bestellung des Taxis konnte ich auch zum ersten Mal die App <a href="http://www.mytaxi.net/">myTaxi</a> ausprobieren, die wirklich super funktioniert. Das Taxi ist schneller da als man eine Telefonnummer für die Taxizentrale der Stadt rausgesucht hat und denen per Anruf den Standort mitgeteilt hat, den man, vielleicht auch nicht mehr ganz nüchtern, gar nicht kennt.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/N0SfYC-5pMUDsrfChSC2ipolmfg/0/da"><img src="http://feedads.g.doubleclick.net/~a/N0SfYC-5pMUDsrfChSC2ipolmfg/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/N0SfYC-5pMUDsrfChSC2ipolmfg/1/da"><img src="http://feedads.g.doubleclick.net/~a/N0SfYC-5pMUDsrfChSC2ipolmfg/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/Kau-boysBlog/~4/Olf_DiFeLgg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://kau-boys.de/1456/android/handy-verloren-was-tun-ein-survival-guide-fuer-android-besitzer/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://kau-boys.de/1456/android/handy-verloren-was-tun-ein-survival-guide-fuer-android-besitzer?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=handy-verloren-was-tun-ein-survival-guide-fuer-android-besitzer</feedburner:origLink></item>
		<item>
		<title>Server Downtimes und keine Erklärung in Sicht</title>
		<link>http://feedproxy.google.com/~r/Kau-boysBlog/~3/g3NtGRZUu9M/server-downtimes-und-keine-erklaerung-in-sicht</link>
		<comments>http://kau-boys.de/1449/allgemein/server-downtimes-und-keine-erklaerung-in-sicht#comments</comments>
		<pubDate>Sun, 06 Nov 2011 14:10:47 +0000</pubDate>
		<dc:creator>Bernhard</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Server]]></category>

		<guid isPermaLink="false">http://kau-boys.de/?p=1449</guid>
		<description><![CDATA[Am Freitag habe ich auf meinem Server nach Rootkits suchen lassen. Die beiden Skripte dazu stelle ich euch hier demnächst mal kurz vor. Es sah danach alles sehr gut aus. Leider war ich dann eine Weile nicht am Rechner und in dieser Zeit stürzte der Apache-Server aus bisher ungeklärten Gründen ab und war über 3 [...]]]></description>
			<content:encoded><![CDATA[<p>Am Freitag habe ich auf meinem Server nach Rootkits suchen lassen. Die beiden Skripte dazu stelle ich euch hier demnächst mal kurz vor. Es sah danach alles sehr gut aus. Leider war ich dann eine Weile nicht am Rechner und in dieser Zeit stürzte der Apache-Server aus bisher ungeklärten Gründen ab und war über 3 Stunden nicht erreichbar. Nach Analyse der Logfiles fand ich viele Angriffe, die auf die <a href="http://www.perun.net/2011/11/04/wordpress-alte-timthumb-version-mit-kritischer-sicherheitsluecke-in-vielen-instalationen-aktiv/">Sicherheitslücke in der TimThumb</a> hindeutete. Ein Angreifer versuchte bei mir die Funktion im Plugin <a href="http://wpmegamenu.com/">UberMenu</a> zu attackieren. Es ist aber schon schlimm, dass ein &#8220;Premium Theme&#8221; eine solche Sicherheitslücke aufweist. Zum Glück setze ich dieses Plugin nicht ein. Ich habe auch ansonsten alle Plugins und Themes gelöscht, die TimThmub einsetzen. </p>
<p>Heute musste ich dann leider feststellen, dass der Server erneut down war. Da das Monitoring über <a href="http://www.pingdom.com">Pingdom</a> mir leider keine Nachricht auf mein Handy schickte, bemerkte ich es erst nach über 7 Stunden! Hiermit möchte ich mich auch bei allen Entschuldigen, die in dieser Zeit vergeblich versucht haben meinen Blog zu erreichen.</p>
<p>Ich weiß leider noch immer nicht, was genau zu den beiden Ausfällen geführt hat. Die einzige größere Änderung der letzten Tage war die Installation des <a href="http://wordpress.org/extend/plugins/wp-super-cache/">WP Super Cache</a> Plugins. Falls jemand von euch weiß, ob es damit zu Abstürzen des Apache Prozesses kommen kann, dann wäre ich ihm für einen Kommentar sehr dankbar.</p>
<p>Ich werde jetzt meinen Server ein bisschen besser im Auge behalten. Sobald ich den Fehler gefunden habe, werde ich euch natürlich sofort berichten, woran es lag. In diesem Sinne noch ein schönes Wochenende!</p>

<p><a href="http://feedads.g.doubleclick.net/~a/6fVupgRa_289iuCmRMAGD7XOvp4/0/da"><img src="http://feedads.g.doubleclick.net/~a/6fVupgRa_289iuCmRMAGD7XOvp4/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/6fVupgRa_289iuCmRMAGD7XOvp4/1/da"><img src="http://feedads.g.doubleclick.net/~a/6fVupgRa_289iuCmRMAGD7XOvp4/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/Kau-boysBlog/~4/g3NtGRZUu9M" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://kau-boys.de/1449/allgemein/server-downtimes-und-keine-erklaerung-in-sicht/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://kau-boys.de/1449/allgemein/server-downtimes-und-keine-erklaerung-in-sicht?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=server-downtimes-und-keine-erklaerung-in-sicht</feedburner:origLink></item>
		<item>
		<title>Pflege des Backend Localization Plugins</title>
		<link>http://feedproxy.google.com/~r/Kau-boysBlog/~3/xUsslwrtcoo/pflege-des-backend-localization-plugins</link>
		<comments>http://kau-boys.de/1437/wordpress/pflege-des-backend-localization-plugins#comments</comments>
		<pubDate>Mon, 31 Oct 2011 14:21:24 +0000</pubDate>
		<dc:creator>Bernhard</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Plugin]]></category>

		<guid isPermaLink="false">http://kau-boys.de/?p=1437</guid>
		<description><![CDATA[Ich habe mir am Wochenende mal mein Backend Localization Plugin vorgenommen und dieses etwas aktualisiert. Zum einen sah die Sprach-Auswahl im Login-Formular nicht mehr besonders schön aus, da mit WordPress 3 das CSS dazu geändert wurde. Zusätzlich kamen einige neue Sprachen dazu, in die WordPress mittlerweile übersetzt ist (bzw. noch übersetzt wird). Hier mal eine [...]]]></description>
			<content:encoded><![CDATA[<p>Ich habe mir am Wochenende mal mein <a href="kau-boys.de/230/wordpress/kau-boys-backend-localization-plugin">Backend Localization Plugin</a> vorgenommen und dieses etwas aktualisiert. Zum einen sah die Sprach-Auswahl im Login-Formular nicht mehr besonders schön aus, da mit WordPress 3 das CSS dazu geändert wurde. Zusätzlich kamen einige neue Sprachen dazu, in die WordPress mittlerweile übersetzt ist (bzw. noch übersetzt wird). Hier mal eine Liste der neu hinzugekommenen Sprachen:</p>
<table style="color: #B9BDB6; background-color: #1B2426; width: 50%; padding: 5px;">
<tr>
<th><u>ISO 639</u></th>
<th><u>Name</u></th>
</tr>
<tr>
<td>es_CL</td>
<td>Spanisch (Chile)</td>
</tr>
<tr>
<td>es_PE</td>
<td>Spanisch (Peru)</td>
</tr>
<tr>
<td>es_VE</td>
<td>Spanisch (Venezuela)</td>
</tr>
<tr>
<td>fa_AF</td>
<td>Persisch (Afghanistan)</td>
</tr>
<tr>
<td>fy</td>
<td>Westfriesisch</td>
</tr>
<tr>
<td>gd</td>
<td>Schottisch-Gälisch</td>
</tr>
<tr>
<td>haw_US</td>
<td>Hawaiisch</td>
</tr>
<tr>
<td>hy</td>
<td>Armenisch</td>
</tr>
<tr>
<td>is_IS</td>
<td>Isländisch</td>
</tr>
<tr>
<td>jv_ID</td>
<td>Javanisch</td>
</tr>
<tr>
<td>kea</td>
<td>Kabuverdianu</td>
</tr>
<tr>
<td>kk</td>
<td>Kasachisch</td>
</tr>
<tr>
<td>kn</td>
<td>Kannada</td>
</tr>
<tr>
<td>li</td>
<td>Limburgisch</td>
</tr>
<tr>
<td>me_ME</td>
<td>???</td>
</tr>
<tr>
<td>mg_MG</td>
<td>Malagasy</td>
</tr>
<tr>
<td>mn</td>
<td>Mongolisch</td>
</tr>
<tr>
<td>ne_NP</td>
<td>Nepali</td>
</tr>
<tr>
<td>nl_BE</td>
<td>Niederländisch (Belgien)</td>
</tr>
<tr>
<td>pa_IN</td>
<td>Panjabi</td>
</tr>
<tr>
<td>sa_IN</td>
<td>Sanskrit</td>
</tr>
<tr>
<td>so_SO</td>
<td>Somali</td>
</tr>
<tr>
<td>srd</td>
<td>Sardisch</td>
</tr>
<tr>
<td>ta_LK</td>
<td>Tamilisch (Sri Lanka)</td>
</tr>
<tr>
<td>zh_TW</td>
<td>Chinesisch (Taiwan)</td>
</tr>
</table>
<p>Es ist immer sehr aufwändig diese Liste zu pflegen, da ich erst einmal feststellen muss, was sich hinter dem <a href="http://en.wikipedia.org/wiki/List_of_ISO_639-2_codes">ISO 639 Code</a> verbirgt. Ich konnte aber bis auf einen Code alle finden. Wenn also jemand von euch weiß, welche Sprache sich hinter me_ME verbirgt, dann würde ich mich über einen Kommentar dazu sehr freuen.</p>
<p>Was man aber auch sehr gut an dieser Liste sehen kann ist die schnelle Verbreitung von WordPress in viele Regionen der Welt. Insgesamt enthält das offizielle <a href="http://svn.automattic.com/wordpress-i18n/">Sprachdateien-Repository von WordPress</a> mittlerweile 94 Sprachcodes. Hier ist aber z.B. für Deutschland nur die &#8220;Du-Version&#8221; enthalten. Die eigentliche Anzahl an unterschiedlichen &#8220;Sprachen&#8221; liegt also vermutlich noch um einiges höher.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/m1quP6oJLm5vSZBn9dI9qYdJYvM/0/da"><img src="http://feedads.g.doubleclick.net/~a/m1quP6oJLm5vSZBn9dI9qYdJYvM/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/m1quP6oJLm5vSZBn9dI9qYdJYvM/1/da"><img src="http://feedads.g.doubleclick.net/~a/m1quP6oJLm5vSZBn9dI9qYdJYvM/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/Kau-boysBlog/~4/xUsslwrtcoo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://kau-boys.de/1437/wordpress/pflege-des-backend-localization-plugins/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://kau-boys.de/1437/wordpress/pflege-des-backend-localization-plugins?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=pflege-des-backend-localization-plugins</feedburner:origLink></item>
		<item>
		<title>Plugins und Sicherheit: Sicherheitslücke in Filedownload Plugin geschlossen</title>
		<link>http://feedproxy.google.com/~r/Kau-boysBlog/~3/eeToBIjJnl4/plugins-und-sicherheit-sicherheitsluecke-in-filedownload-plugin-geschlossen</link>
		<comments>http://kau-boys.de/1422/wordpress/plugins-und-sicherheit-sicherheitsluecke-in-filedownload-plugin-geschlossen#comments</comments>
		<pubDate>Tue, 18 Oct 2011 15:30:00 +0000</pubDate>
		<dc:creator>Bernhard</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Plugin]]></category>

		<guid isPermaLink="false">http://kau-boys.de/?p=1422</guid>
		<description><![CDATA[Aus gegebenem Anlass kommt heute mal ein Artikel zu einem sehr heiklen Thema: Plugins und Sicherheit. Ein mir bekannter Blog wurde letzte Woche gehackt. Anschließend konnte man auf diesem nur noch Space Invaders spielen. Glücklicherweise war es ein sehr netter Hacker, der seine Tat zugab und auch gleich erklärte, was falsch gemacht wurde und wie [...]]]></description>
			<content:encoded><![CDATA[<p>Aus gegebenem Anlass kommt heute mal ein Artikel zu einem sehr heiklen Thema: <strong>Plugins und Sicherheit</strong>.  Ein mir bekannter Blog wurde  letzte Woche gehackt. Anschließend konnte man auf diesem nur noch Space Invaders spielen. Glücklicherweise war es ein sehr netter Hacker, der seine Tat zugab und auch gleich erklärte, was falsch gemacht wurde und wie er damit ohne Probleme den Blog hacken konnte.</p>
<h2>Funktion des Plugins</h2>
<p>Die Sicherheitslücke steckte in dem <a href="http://wordpress.org/extend/plugins/filedownload/">Plugin Filedownload</a>. Dieses Plugin wird eingesetzt um eine in WordPress hochgeladene Datei direkt zum Download anzubieten. In der Regel öffnet ein Browser ja eine Datei, die er direkt anzeigen kann, wie z.B. ein Bild oder eine PDF-Datei. Dieses Plugin gibt aber nun die angeforderte Datei so an den Browser zurück, dass dieser das Download-Dialogfenster öffnet und den Benutzer zum Download der Datei auffordert.</p>
<p><span id="more-1422"></span></p>
<h2>Die Sicherheitslücke</h2>
<p>Die Sicherheitslücke bestand darin, dass das Plugin auch relative Verzeichnispfade akzeptierte. So konnte ohne weiteres die „wp-config.php“ Datei angefordert werden. Da hier alle Zugangsdaten in Klartext gespeichert sind und der Blog zusätzlich auch noch für den FTP-Account die gleichen Zugangsdaten nutzte, konnte der Angreifer ohne Probleme eigene Dateien hochladen. Ein böser Hacker hätte das ausnutzen und beliebigen Schadcode ausführen können (allerdings wohl nicht mit Administrationsrechten).</p>
<p>Der Autor des Plugins hat den Fehler mittlerweile behoben. Es gibt aber leider noch sehr viele Blog, die noch die unsichere Version verwenden. Diejenigen von euch, die auch dieses Plugin einsetzen, sollten also sofort auf die neueste Version updaten.</p>
<h2>Weitere Beispiele für bekannte Sicherheitslücken</h2>
<p>Im August wurde ein Sicherheitsproblem in der Funktion timthumb bekannt. Dabei war es einem Angreifer möglich eine beliebige Datei in ein System einzuschleusen. Damit konnte der Angreifer dann beliebigen Schadcode auf dem infizierten System ausführen. Da die timthumb Funktion von sehr vielen Themes verwendet wird, waren sehr viele Blogs angreifbar. Hier kommt erschwerend hinzu, dass für jedes Theme ein eigenes Sicherheitsupdate notwendig war, da fast alle Themes die Funktion direkt in das Theme integriert haben und somit auch die Sicherheitslücke nicht zentral für alle Themes geschlossen werden konnte. Im WordPress Repository findet man daher das <a href="http://wordpress.org/extend/plugins/timthumb-vulnerability-scanner/">Plugin Timthumb Vulnerability Scanner</a>, mit dem man seinem Blog auf die noch offene Sicherheitslücke hin untersuchen kann. Damals wurde glücklicherweise von <a href="http://blog.wordpress-deutschland.org/2011/08/03/sicherheitsluecke-in-vielen-themes-durch-timthumb.html">WordPress Deutschland Team</a> und auch bei <a href="http://www.heise.de/security/meldung/Kritische-Sicherheitsluecke-in-Wordpress-Addon-Timthumb-1317795.html">heise.de</a> davon berichtet, so dass viele auf die Sicherheitslücke aufmerksam wurden.</p>
<h2>Fazit</h2>
<p>Es ist durch Plugins sehr einfach möglich die Funktionalität seines Blogs zu erweitern. Aber es ist leider auch sehr einfach möglich, seinen Blog dadurch einem erhöhten Sicherheitsrisiko auszusetzen. Es sollte nun niemand in Panik verfallen und alle Plugins deinstallieren. Es soll nur ein Appell sein die Updates, die für die diversen Plugins ständig im Backend angeboten werden auch zu installieren. Die meisten Plugin-Autoren pflegen auch ein Changelog, in dem man nachlesen kann, welche Änderungen die neue Version enthält. Aber in der Regel werden dadurch Fehler oder eben Sicherheitslücken geschlossen. Als zusätzliche Maßnahme sollte man eine regelmäßige Sicherung seines Blogs durchführen. Dazu teste ich seit ein paar Wochen <a href="http://wordpress.org/extend/plugins/backwpup/">BackWPup</a>. Ich werde euch demnächst ausführlich darüber berichten.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/jqVT-IldpEa84MaJmzRMlVNj7PI/0/da"><img src="http://feedads.g.doubleclick.net/~a/jqVT-IldpEa84MaJmzRMlVNj7PI/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/jqVT-IldpEa84MaJmzRMlVNj7PI/1/da"><img src="http://feedads.g.doubleclick.net/~a/jqVT-IldpEa84MaJmzRMlVNj7PI/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/Kau-boysBlog/~4/eeToBIjJnl4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://kau-boys.de/1422/wordpress/plugins-und-sicherheit-sicherheitsluecke-in-filedownload-plugin-geschlossen/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://kau-boys.de/1422/wordpress/plugins-und-sicherheit-sicherheitsluecke-in-filedownload-plugin-geschlossen?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=plugins-und-sicherheit-sicherheitsluecke-in-filedownload-plugin-geschlossen</feedburner:origLink></item>
		<item>
		<title>Valides XHTML mit dem Google Analytics for WordPress Plugin</title>
		<link>http://feedproxy.google.com/~r/Kau-boysBlog/~3/cMNHT8pMGhs/valides-xhtml-mit-dem-google-analytics-for-wordpress-plugin</link>
		<comments>http://kau-boys.de/1412/wordpress/valides-xhtml-mit-dem-google-analytics-for-wordpress-plugin#comments</comments>
		<pubDate>Wed, 12 Oct 2011 21:20:40 +0000</pubDate>
		<dc:creator>Bernhard</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://kau-boys.de/?p=1412</guid>
		<description><![CDATA[Gestern Abend hatte ich mir mal wieder die Zeit genommen meine Startseite auf invaliden Quellcode hin zu untersuchen. Da meine Seite noch XHTML als Doctype verwendet, gab es einige Fehler bzgl. Der &#8220;target&#8221; Attribute in der Blogroll. Nach langer Recherche konnte ich das sehr beliebte Google Analytics for WordPress Plugin von Joost de Valk als [...]]]></description>
			<content:encoded><![CDATA[<p>Gestern Abend hatte ich mir mal wieder die Zeit genommen meine Startseite auf invaliden Quellcode hin zu untersuchen. Da meine Seite noch XHTML als Doctype verwendet, gab es einige Fehler bzgl. Der &#8220;target&#8221; Attribute in der Blogroll. Nach langer Recherche konnte ich das sehr beliebte <a href="http://wordpress.org/extend/plugins/google-analytics-for-wordpress/">Google Analytics for WordPress Plugin</a> von <a href="http://yoast.com/">Joost de Valk</a> als Fehlerquelle ausmachen.</p>
<h2>Das Problem</h2>
<p>Man kann nun aber dem Plugin nicht wirklich einen Vorwurf machen. Nachdem ich den Quellcode des Plugin sowie die Ausgabe der Blogroll im WordPress Core untersucht habe, konnte ich auch keine bessere Einbindung finden als die im Plugin verwendete. Es fehlt leider ein Filter, mit dem man den Link Tags zusätzliche Attribute anhängen kann. Da aber bei aktivierten Outlink-Tracking noch ein &#8220;onclick&#8221; Attribut notwendig ist, wurde es vom Plugin-Entwickler eben an das &#8220;target&#8221; Attribut angehängt. Damit war denn der Inhalt des selbigen nicht mehr leer und es wurde ausgegeben, auch wenn der Link für die Blogroll im Backend auf &#8220;none&#8221; gestellt war.</p>
<h2>Die Lösung</h2>
<p>Es gibt glücklicherweise eine recht einfache Lösung für das Problem. Da es einen Filter für die gesamte Ausgabe der Blogroll gibt, können wir hier ansetzen. Wir entfernen einfach sämtliche leere &#8220;target&#8221; Attribute im Ausgabestring mit folgendem Snippet:</p>
<pre class="brush: php; gutter: false; title: ; notranslate">
function remove_empty_target($content){
        return str_replace('target=&quot;&quot; ', '', $content);
} add_action('wp_list_bookmarks', 'remove_empty_target');
</pre>
<p>Das Snippet fügt ihr einfach in die functions.php Datei eures Themes an einer beliebigen Stelle ein. Wer für seine Seite ein Theme verwendet, das als Doctpye HTML5 nutzt, der kann diesen Tipp getrost ignorieren. Denn in HTML5 ist das &#8220;target&#8221; Attribut wieder enthalten.  Trotzdem halte ich noch immer die Angewohnheit externe Links mit einem <code>target="_blank"</code> in einem neuen Tab/Fenster zu öffnen für eine Todsünde der Usabilty. Aber im Zusammenhang mit Formularen und JavaScript kann ein &#8220;target&#8221; Attribut durchaus Sinn machen und notwendig sein.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/V5gTEOj2tcZI2kF1brtkVUo3vR8/0/da"><img src="http://feedads.g.doubleclick.net/~a/V5gTEOj2tcZI2kF1brtkVUo3vR8/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/V5gTEOj2tcZI2kF1brtkVUo3vR8/1/da"><img src="http://feedads.g.doubleclick.net/~a/V5gTEOj2tcZI2kF1brtkVUo3vR8/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/Kau-boysBlog/~4/cMNHT8pMGhs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://kau-boys.de/1412/wordpress/valides-xhtml-mit-dem-google-analytics-for-wordpress-plugin/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://kau-boys.de/1412/wordpress/valides-xhtml-mit-dem-google-analytics-for-wordpress-plugin?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=valides-xhtml-mit-dem-google-analytics-for-wordpress-plugin</feedburner:origLink></item>
		<item>
		<title>Die Welt hat einen großen Visionär verloren: Steve Jobs</title>
		<link>http://feedproxy.google.com/~r/Kau-boysBlog/~3/oE5xnwBjKfk/die-welt-hat-einen-grossen-visionaer-verloren-steve-jobs</link>
		<comments>http://kau-boys.de/1398/allgemein/die-welt-hat-einen-grossen-visionaer-verloren-steve-jobs#comments</comments>
		<pubDate>Thu, 06 Oct 2011 18:33:48 +0000</pubDate>
		<dc:creator>Bernhard</dc:creator>
				<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://kau-boys.de/?p=1398</guid>
		<description><![CDATA[Wer mich persönlich kennt, der weiß, dass ich kein Apple-Fanboy bin. Das einzige iGadget, dass ich mein eigenen nennen kann ist ein iPod Shuffle und es war ein Geschenk. Das liegt nicht daran, dass ich nicht von der Qualität der Produkte überzeugt bin, sondern an meiner Ablehnung der Firmenpolitik von Apple. Dennoch habe ich Steve [...]]]></description>
			<content:encoded><![CDATA[<p>Wer mich persönlich kennt, der weiß, dass ich kein Apple-Fanboy bin. Das einzige iGadget, dass ich mein eigenen nennen kann ist ein iPod Shuffle und es war ein Geschenk. Das liegt nicht daran, dass ich nicht von der Qualität der Produkte überzeugt bin, sondern an meiner Ablehnung der Firmenpolitik von Apple.</p>
<p>Dennoch habe ich Steve Jobs für seine Arbeit und seine Visionen sehr geschätzt. Nicht nur Apple Fans weltweit verlieren mit seinem Tod einen wichtigen Vordenker unserer Zeit. Es wird schwierig die Lücke, die er hinterlässt zu füllen.</p>
<blockquote cite="http://de.wikiquote.org/wiki/Steve_Jobs" style="text-align: center; font-style: italic;"><p>&#8220;Your time is limited, so don&#8217;t waste it living someone else&#8217;s life.&#8221; (Steve Jobs)</p>
</blockquote >

<p><a href="http://feedads.g.doubleclick.net/~a/b90IporkoH2s3nfBq1IsHXniZTk/0/da"><img src="http://feedads.g.doubleclick.net/~a/b90IporkoH2s3nfBq1IsHXniZTk/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/b90IporkoH2s3nfBq1IsHXniZTk/1/da"><img src="http://feedads.g.doubleclick.net/~a/b90IporkoH2s3nfBq1IsHXniZTk/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/Kau-boysBlog/~4/oE5xnwBjKfk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://kau-boys.de/1398/allgemein/die-welt-hat-einen-grossen-visionaer-verloren-steve-jobs/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://kau-boys.de/1398/allgemein/die-welt-hat-einen-grossen-visionaer-verloren-steve-jobs?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=die-welt-hat-einen-grossen-visionaer-verloren-steve-jobs</feedburner:origLink></item>
		<item>
		<title>Gastartikel: Top Ten der Webdesign Fehler</title>
		<link>http://feedproxy.google.com/~r/Kau-boysBlog/~3/Du2qstuKp2E/gastartikel-top-ten-der-webdesign-fehler</link>
		<comments>http://kau-boys.de/1370/webentwicklung/gastartikel-top-ten-der-webdesign-fehler#comments</comments>
		<pubDate>Fri, 30 Sep 2011 20:17:34 +0000</pubDate>
		<dc:creator>Bernhard</dc:creator>
				<category><![CDATA[Webentwicklung]]></category>
		<category><![CDATA[Gastartikel]]></category>

		<guid isPermaLink="false">http://kau-boys.de/?p=1370</guid>
		<description><![CDATA[Hallo meine lieben Leser. Heute gibt es eine kleine Premiere auf meinem Blog: Den ersten Gastartikel. Er wurde verfasst von Marianne, einer Mitarbeiterin von twago. Ich bin der Meinung, dass er auch für meine Leser ganz interessant ist. Und mal sehen, ob ich selbst keinen der Fehler bei meiner Website begangen habe. Aber hier nun [...]]]></description>
			<content:encoded><![CDATA[<p>Hallo meine lieben Leser. Heute gibt es eine kleine Premiere auf meinem Blog: Den ersten Gastartikel. Er wurde verfasst von Marianne, einer Mitarbeiterin von <a href="http://www.twago.de" title="twago – Experten finden">twago</a>. Ich bin der Meinung, dass er auch für meine Leser ganz interessant ist. Und mal sehen, ob ich selbst keinen der Fehler bei meiner Website begangen habe. Aber hier nun der Artikel.</p>
<hr style="border: 0 none; background-color: lightgrey; height: 1px" />
<p>Bei den Milliarden Webseiten die man im World Wide Web finden kann, gibt es Seiten, die einen wahren optischen Genuss darstellen und auf denen man gern verweilt. Jedoch gibt es auch Millionen Seite, die man nicht gern besucht und schnell wieder vergisst. Es gibt unzählige Fehlerquellen bei der Erstellung einer Webseite. Hier werden im folgenden 10 vorgestellt.</p>
<p><span id="more-1370"></span></p>
<ol style="padding-left: 25px;" >
<li style="margin-top: 5px; font-weight: bold;">Worum geht es hier?<br />
<span style="font-weight: normal;">Innerhalb von ein paar Sekunden sollte dem Besucher bewusst sein, worum es auf der Seite geht. Schnell sollte für den Leser klar sein, warum er auf der Seite Zeit verbringen sollte.</span></li>
<li style="margin-top: 5px; font-weight: bold;">Texte mich nicht zu!<br />
<span style="font-weight: normal;">Versuchen Sie unbedingt große Textblöcke zu vermeiden. Leser möchten sich zwar informieren, aber sie möchten auch unterhalten werden. Die Seite sollte scannbar sein, für alle die nur nach einzelnen Informationen suchen.</span></li>
<li style="margin-top: 5px; font-weight: bold;">Was steht da?<br />
<span style="font-weight: normal;">Die Wahl der Schriftart, aber auch die Schriftgröße sollten wohl durchdacht sein und vor allem lesbar. Natürlich gibt es sehr viele Schriftarten, die ordentlich was her machen, jedoch hilft es nicht, wenn diese nicht komfortable für den Leser sind. Eine gute Lösung für das Problem der passenden Schriftgröße ist, wenn der Besucher die passende Größe selbst bestimmen kann.</span></li>
<li style="margin-top: 5px; font-weight: bold;">Autsch! Das tut ja weh&#8230;<br />
<span style="font-weight: normal;">Meiden Sie weitestgehend besonders grelle und scharfe Farben. Die gewählten Farbkombinationen sollten auch nach 10 Minuten noch keine Kopfschmerzen verursachen. Das Farbkonzept sollte sich an der Farbwirkung und der Stimmung, die sie dem Leser vermitteln möchten, orientieren.</span></li>
<li style="margin-top: 5px; font-weight: bold;">Wo ist denn nur?<br />
<span style="font-weight: normal;">Neben einem ansprechenden <a href="http://www.twago.de/expert/Webdesigner/Webdesigner" title="Webdesigner finden">Design</a>, muss eine gute und übersichtliche Navigationsstruktur den Leser auch zur gewünschten Seite führen und nicht verwirren. Spielen Sie nicht mit der Geduld des Besuchers.</span></li>
<li style="margin-top: 5px; font-weight: bold;">Ach nein, nicht das auch noch!<br />
<span style="font-weight: normal;">Gehen Sie vorsichtig mit Flash-Elementen um. Nicht jeder Besucher mag Intros und die damit verbundenen Ladezeiten. Gekoppelt mit Musik, kann das zu einem Schreckmoment beim Besucher führen, der vielleicht nicht in der passenden Umgebung ist, um diese Mühe wertzuschätzen. Sollten Sie dem Leser doch etwas für seine Ohren bieten wollen, lassen Sie ihm dennoch die Wahl, durch das Klicken des „Play“-Buttons.</span></li>
<li style="margin-top: 5px; font-weight: bold;">Das sieht ja komisch aus!<br />
<span style="font-weight: normal;">Stellen Sie frühzeitig sicher, dass Ihre Webseite auch mit allen gängigen Browsern richtig anzeigt wird. Nicht alle Browser können alle CSS Elemente oder <a href="http://www.twago.de/expert/Programmierer/Programmierer" title="Programmierer finden"> Programmiersprachen</a> in der neusten Version wie gewünscht und erhofft darstellen. Optimieren Sie die Webseite für die am meist genutzten Browser.</span></li>
<li style="margin-top: 5px; font-weight: bold;">Hört das den gar nicht mehr auf?<br />
<span style="font-weight: normal;">Vermeiden Sie zu lange Seiten. Leser scrollen nicht gern auf endlosen Seiten um nach den gewünschten Inhalten zu suchen. Die Seiten sollten kurz gefasst und gut strukturiert sein.</span></li>
<li style="margin-top: 5px; font-weight: bold;">Ich find das einfach nicht!<br />
<span style="font-weight: normal;">Machen Sie es dem Besucher leicht und ermöglichen Sie es ihm, mit Hilfe eines Suchfensters auf der ganzen Seite nach Inhalten suchen zu können.</span></li>
<li style="margin-top: 5px; font-weight: bold;">Nicht noch mehr Werbung!<br />
<span style="font-weight: normal;">Vorsicht ist geboten, bei der Anzahl der Werbeschaltungen auf der eigenen Seite. Ihre Leser werden den ganzen Tag mit Werbung konfrontiert, von daher sollten Sie die Nerven Ihrer Besucher nicht überstrapazieren. Zu viele Werbeflächen wirken abschreckend und verärgern den Besucher.</span></li>
</ol>
<p>Natürlich könnte man diese Liste noch um einige Fehlerquellen erweitern. Doch viel wichtiger ist, dass man mit wenigen Schritten viele Dinge auf einer Webseite wesentlich verbessern kann.</p>
<hr style="border: 0 none; background-color: lightgrey; height: 1px" />
<p>Ich hoffe der Artikel hat euch gefallen. Wenn ihr auch mal ein Thema für einen Artikel habt, den ihr gerne schreiben möchtet, aber selbst keinen Blog habt, auf dem ihr ihn veröffentlichen könnt, dann her damit. Wenn es thematisch passt werde ich ihn gerne für euch veröffentlichen.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/SwGesqm-yB_aMRNo2w44ODW4pvU/0/da"><img src="http://feedads.g.doubleclick.net/~a/SwGesqm-yB_aMRNo2w44ODW4pvU/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/SwGesqm-yB_aMRNo2w44ODW4pvU/1/da"><img src="http://feedads.g.doubleclick.net/~a/SwGesqm-yB_aMRNo2w44ODW4pvU/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/Kau-boysBlog/~4/Du2qstuKp2E" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://kau-boys.de/1370/webentwicklung/gastartikel-top-ten-der-webdesign-fehler/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://kau-boys.de/1370/webentwicklung/gastartikel-top-ten-der-webdesign-fehler?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=gastartikel-top-ten-der-webdesign-fehler</feedburner:origLink></item>
		<item>
		<title>Das WordCamp 2011 in Köln – Mein Rückblick</title>
		<link>http://feedproxy.google.com/~r/Kau-boysBlog/~3/822HCAl-G2o/das-wordcamp-2011-in-koeln-mein-rueckblick</link>
		<comments>http://kau-boys.de/1365/wordpress/das-wordcamp-2011-in-koeln-mein-rueckblick#comments</comments>
		<pubDate>Wed, 28 Sep 2011 15:46:40 +0000</pubDate>
		<dc:creator>Bernhard</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[WordCamp]]></category>

		<guid isPermaLink="false">http://kau-boys.de/?p=1365</guid>
		<description><![CDATA[Um es kurz und knapp auf den Punkt zu bringen: Es hat sich gelohnt. Angefangen hat es schon am Freitag mit einer Zugfahrt von Berlin nach Köln, die so einiges zu bieten hatte. Das Highlight war wohl der Stopp in Hannover, wo ein Wagon aus der Mitte unseres Zugverbands rausgenommen werden musste. Insgesamt hatte ich [...]]]></description>
			<content:encoded><![CDATA[<p>Um es kurz und knapp auf den Punkt zu bringen: Es hat sich gelohnt. Angefangen hat es schon am Freitag mit einer Zugfahrt von Berlin nach Köln, die so einiges zu bieten hatte. Das Highlight war wohl der Stopp in Hannover, wo ein Wagon aus der Mitte unseres Zugverbands rausgenommen werden musste. Insgesamt hatte ich dann fast zwei Stunden Verspätung bis Köln. Nur gut, dass ich am Freitag und nicht erst Samstagmorgen angereist bin.</p>
<h2>Ankunft und Location</h2>
<p>Nachdem ich endlich das richtige Gebäude gefunden hatte und mich angemeldet hatte, gab es wie auch im letzten Jahr ein sehr tolles T-Shirt. Vor der ersten Session wollte ich mich noch schnell mit einem Cappuccino stärken. Das hätte ich lieber gelassen, denn er war ein löslicher, der mit viel zu wenig Wasser aufgegossen eigentlich ungenießbar war und mir noch 5 Stunden später einen unangenehmen Nachgeschmack bescherte. Die Räume der Uni, die für das <a href="http://wordcamp.de">WordCamp</a> gebucht waren, hatten eine recht gute Einrichtung. Nur an die wippenden Stühle konnten sich so manche Teilnehmer nicht gewöhnen. Ich fand sie super bequem.</p>
<p><span id="more-1365"></span></p>
<h2>Die ersten Sessions</h2>
<p>Meine erste besuchte Session hatte das Thema „Ecommerce Lösungen für WordPress“ die ich vor Allem deshalb besucht habe, um mal von Experten zu erfahren, ob es wirklich keine guten Shop-Plugins für WordPress gibt. Diese Annahme wurde im Großen und Ganzen bestätigt, da viele der Plugins einfach nicht optimal an das deutsche Rechtssystem angepasst sind. Aber als Nischenprodukte für Kleinunternehmen war schon was dabei. Ansonsten nutzt man eher eine ausgewachsene Shop-Software und versucht diese einfach soweit es geht an das Layout des eigenen WordPress-Blogs anzupassen.</p>
<p>Anschließend ging es in die Session „Hook me!“ die hoffnungslos überfüllt war. Nicht ganz ohne Grund, stellen doch Filter und Actions die mächtigsten Waffen im Umgang mit WordPress da. Dort wurden auch einige meiner ewig offenen Fragen beantwortet. Aber sehr ins Detail ging er Referent leider nicht um nicht mit einem Beispiel die Verwendungsmöglichkeiten zu stark einzuschränken. Im Grunde kann man mit Hooks (fast) alles anstellen und das konnte er auch gut vermitteln.</p>
<p>Die letzte Session vor der Mittagspause drehte sich um das Thema „Kundenprojekte mit WordPress als CMS“. Dies beinhaltete einen fast einstündigen Vortrag über Projektmanagement und den richtigen Umgang mit Kunden. Aber die Fallbeispiele am Ende der Session haben meine erste Enttäuschung doch noch gemildert.</p>
<h2>Mittagspause</h2>
<p>Da es vormittags  nur Obst und Süßigkeiten gab war ich praktisch ohne echtes Frühstück in den Tag gestartet. Umso schöner war es dann, zum Mittag eine große Auswahl an belegten Brötchen vorzufinden. Jeder, der sich über die 10€ Gebühr aufregt (die komplett an eine gemeinnützige Organisation gespendet werden), der hat wohl spätestens jetzt keine Argumente mehr gefunden. Da das Wetter auch mitspielte machten es sich einige Teilnehmer draußen auf der Wiese bequem. Gut gestärkt konnte ich mich also in die zweite Hälfte des WordCamp stürzen.</p>
<h2>Die improvisierte zweite Hälfte</h2>
<p>Die erste Session „Formular-Plugins im Vergleich“ war schon eine viertel Stunde vorher sehr gut gefüllt. Leider konnten selbst Suchaufrufe über Twitter den Referenten nicht beibringen. Jeder Teilnehmer der rein kam wurde gleich als möglicher Referent gefeiert. Die Leitung las wohl auch die Twitter Posts und teilte uns dann mit, dass der Referent leider krank sei und nicht abgesagt hatte. Ganz spontan meldete sich dann aber ein Teilnehmer als Moderator für eine offene Diskussion, bei der verschiedene Teilnehmer ihre Erfahrungen zu den diversen Plugins vorstellten. Die Plugins mit <a href="http://www.deliciousdays.com/cforms-plugin/">cformsII</a> und <a href="http://wordpress.org/extend/plugins/formidable/">Formidable Forms</a> bekamen dabei den größten Zuspruch der Teilnehmer. Aber auch <a href="http://wordpress.org/extend/plugins/si-contact-form/">Fast Secure Contact Form</a> bekam gute Kritiken, nicht nur als Kontaktformular. </p>
<p>Anschließend besuchte ich die Session „Was kann man mit WordPress machen?“ von den Jungs von inpsyde. Sie stellten ein paar Lösungen vor, die sie mit WordPress umgesetzt haben. Was BuddyPress angeht haben sie echt ein paar super coole Features entwickelt. Bei der Vorstellung einer komplett „ajaxifizierten“ Seite war ich dann aber doch an ein Projekt erinnert, das bei dem ich selbst eine ähnliche oder sogar noch erweiterte Funktion umgesetzt habe. Zuletzt konnte man ihnen Fragen stellen, die einem schon lange im Kopf rumschwirren. Aber auf meine Frage, ob man innerhalb von THE LOOP erkennen könne, den wievielten Post man gerade ausgibt, hatten sie auch nur eine ähnlich unbefriedigende Lösung wie ich selbst parat: Mit einer externen globalen Zählvaribalen.</p>
<p>Im Anschluss an diese sehr interessante Session zog es mich in die „Übersetzerrunde“, die allerdings nur aus vier Personen bestand. Also unterheilten wir uns fast eine Stunde lang um die Problematik der deutschen Community. Zuletzt lernten wir dann aber doch alle noch etwas dazu, und zwar, dass man Übersetzungen auch auf einen Kontext beziehen kann. Das wird in WordPress mit der Funktion <a href="http://codex.wordpress.org/Function_Reference/_x">_x()</a> realisiert.</p>
<p>Zum Abschluss des WordCamp besuchte ich die Session „Geld verdienen mit WordPress“, die auch wieder zu einer Diskussionsrunde erklärt wurde, da auch hier der Referent nicht anwesend war. Ich habe hier aber einige sehr interessante Möglichkeiten kennengelernt, die mir früher noch nie in den Sinn gekommen sind. So habe ich mich gestern bei der <a href="http://www.vgwort.de/">VG Wort</a> angemeldet. Somit erhalte ich bei ausreichend Aufrufen eines Artikels Tantiemen als Autor von der VG Wort. Dass so etwas mit Blogs überhaupt möglich ist und man nur 1500 Aufrufe pro Jahr und Artikel benötigt, hätte ich nicht gedacht. Andere Tipps, abgesehen von klassischer Werbung, waren der Verkauf von Link oder auch Support-Leistungen wie Video-Trainings, Schulungen, Wartung von Blogs und ähnliches. Für den seit einiger Zeit bei mir zu findenden Flattr-Button gab es aber keine Zustimmung. Er scheint wohl im deutschen Markt wirklich noch nicht angekommen zu sein. Daher werde ich ihn wohl bald wieder entfernen und dadurch das Laden meines Blogs wieder beschleunigen.</p>
<h2>Fazit</h2>
<p>Damit endete dann auch schon das diesjährige WordCamp. Es waren zwar nicht wirklich viele WordPress-Entwickler-Themen dabei, aber so konnten auch Einsteiger oder Blog-Autoren auf einem angenehmen Niveau neues lernen. Ich habe trotzdem einige neue Tricks gelernt und kann damit nur sagen, dass ich auch im nächsten Jahr wieder teilnehmen werde, wenn es sich zeitlich einrichten lässt. Leider wurde noch nicht gesagt, wo es im nächsten Jahr stattfinden wird.</p>
<p>Ich hoffe euch hat die kleine Zusammenfassung einen guten Eindruck zum WordCamp vermitteln können. Wenn ihr zu einer bestimmten Session noch mehr Informationen haben möchtet, dann hinterlasst doch einfach einen kurzen Kommentar.</p>
<p>Ach ja, fast hätte ich es vergessen: Meine Rückfahrt von Köln verlief leider auch nicht wie geplant. Dieses Mal fiel aber gleich der ganze ICE aus, da ein Defekt am Triebwagen vorlag. So kam ich auch bei der Rückfahrt über eine Stunde zu spät in Berlin an. Aber immerhin gab es so insgesamt 25% des Fahrpreises zurückerstattet. Trotzdem hoffe ich, dass es im nächsten Jahr mal wieder reibungslos verläuft <img src='http://kau-boys.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<p><a href="http://feedads.g.doubleclick.net/~a/0Be65zHfoFOpUJdDZPxR8EQkQgQ/0/da"><img src="http://feedads.g.doubleclick.net/~a/0Be65zHfoFOpUJdDZPxR8EQkQgQ/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/0Be65zHfoFOpUJdDZPxR8EQkQgQ/1/da"><img src="http://feedads.g.doubleclick.net/~a/0Be65zHfoFOpUJdDZPxR8EQkQgQ/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/Kau-boysBlog/~4/822HCAl-G2o" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://kau-boys.de/1365/wordpress/das-wordcamp-2011-in-koeln-mein-rueckblick/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://kau-boys.de/1365/wordpress/das-wordcamp-2011-in-koeln-mein-rueckblick?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=das-wordcamp-2011-in-koeln-mein-rueckblick</feedburner:origLink></item>
		<item>
		<title>Auf zum WordCamp 2011 am 24.09.2011 in Köln</title>
		<link>http://feedproxy.google.com/~r/Kau-boysBlog/~3/OJQ8tJcmiQY/auf-zum-wordcamp-2011-am-24-09-2011-in-koeln</link>
		<comments>http://kau-boys.de/1352/wordpress/auf-zum-wordcamp-2011-am-24-09-2011-in-koeln#comments</comments>
		<pubDate>Fri, 23 Sep 2011 11:37:01 +0000</pubDate>
		<dc:creator>Bernhard</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[WordCamp]]></category>

		<guid isPermaLink="false">http://kau-boys.de/1352/wordpress/auf-zum-wordcamp-2011-am-24-09-2011-in-koeln</guid>
		<description><![CDATA[Es ist wieder soweit. Morgen findet das diesjährige WordCamp Deutschland in Köln statt. Eigentlich wäre ich dieses Jahr nicht mit dabei gewesen, aber glücklicherweise hat sich dann gestern doch noch die Gelegenheit ergeben. Es waren zwar schon alle Plätze weg, aber fragen kostet ja bekanntlich nichts und so konnte ich den Platz eines Teilnehmers einnehmen, [...]]]></description>
			<content:encoded><![CDATA[<p>Es ist wieder soweit. Morgen findet das diesjährige <a href="http://wordcamp.de">WordCamp Deutschland in Köln</a> statt. Eigentlich wäre ich dieses Jahr nicht mit dabei gewesen, aber glücklicherweise hat sich dann gestern doch noch die Gelegenheit ergeben. Es waren zwar schon alle Plätze weg, aber fragen kostet ja bekanntlich nichts und so konnte ich den Platz eines Teilnehmers einnehmen, der kurzfristig abgesagt hatte.</p>
<p><a href="http://wordcamp.de"><br />
<img src="http://kau-boys.de/wp-content/uploads/2011/09/wck11_468_60.jpg" alt="WordCamp 2011 Köln" title="WordCamp 2011 Köln" width="468" height="60" /><br />
</a></p>
<p>Dann ging es nur noch darum eine günstige Verbindung nach Köln zu bekommen. Und nun sitze ich im Zug Richtung Köln und freue mich schon auf viele spannende Themen rund um WordPress.</p>
<p>Sollte wie auch im letzten Jahr der ein oder andere von euch auch mit dabei sein, dann treffen wir uns ja morgen wieder. Alle anderen kann ich nur damit vertrösten, dass ich auch dieses Mal wieder meine Eindrücke mit euch teilen und die besten Tipps nochmals hier vorstellen werde.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/-Qu2r0kZ88tLCV2WoE_PzgYlUOk/0/da"><img src="http://feedads.g.doubleclick.net/~a/-Qu2r0kZ88tLCV2WoE_PzgYlUOk/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/-Qu2r0kZ88tLCV2WoE_PzgYlUOk/1/da"><img src="http://feedads.g.doubleclick.net/~a/-Qu2r0kZ88tLCV2WoE_PzgYlUOk/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/Kau-boysBlog/~4/OJQ8tJcmiQY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://kau-boys.de/1352/wordpress/auf-zum-wordcamp-2011-am-24-09-2011-in-koeln/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://kau-boys.de/1352/wordpress/auf-zum-wordcamp-2011-am-24-09-2011-in-koeln?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=auf-zum-wordcamp-2011-am-24-09-2011-in-koeln</feedburner:origLink></item>
		<item>
		<title>Lokalisierung für Child Themes am Beispiel von Thematic</title>
		<link>http://feedproxy.google.com/~r/Kau-boysBlog/~3/bZJrfPBa-ow/lokalisierung-fuer-child-themes-am-beispiel-von-thematic</link>
		<comments>http://kau-boys.de/1341/wordpress/lokalisierung-fuer-child-themes-am-beispiel-von-thematic#comments</comments>
		<pubDate>Sat, 10 Sep 2011 12:37:33 +0000</pubDate>
		<dc:creator>Bernhard</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Thematic]]></category>
		<category><![CDATA[Theme]]></category>

		<guid isPermaLink="false">http://kau-boys.de/?p=1341</guid>
		<description><![CDATA[In einem der Blogs, die ich betreue wird Thematic eingesetzt. Vor kurzem wollte ich das Thematic Theme selbst aktualisieren, da es bereits einge Versionen alt war. Wir hatten aber damals den &#8220;Core&#8221; von Thematic verändert, genauer gesagt die deutsche Überstetzungsdatei. Das war natürlich nicht sehr elegant und es rächt sich, weil man dann nicht gefahrlos [...]]]></description>
			<content:encoded><![CDATA[<p>In einem der Blogs, die ich betreue wird <a href="http://themeshaper.com/thematic/">Thematic</a> eingesetzt. Vor kurzem wollte ich das Thematic Theme selbst aktualisieren, da es bereits einge Versionen alt war. Wir hatten aber damals den &#8220;Core&#8221; von Thematic verändert, genauer gesagt die deutsche Überstetzungsdatei. Das war natürlich nicht sehr elegant und es rächt sich, weil man dann nicht gefahrlos ein Update installieren kann. Zuerst sah ich aber keine andere Lösung, als die Übersetzung zu sichern und nach einem Update auf die neue Thematic-Version die geänderte Übersetzungsdatei wieder in die neue Version zu kopieren. </p>
<p>Aber ich war mit dieser Lösung überhaupt nicht zufrieden. Bei meiner Arbeit mit WordPress arbeite ich NIE im Core. Sollte es zu einem Problem mal wirklich keinen HOOK geben, dann versuche ich nach Möglichkeit die Funktionalität aus dem Core zu kopieren um bei einem Update ohne Gefahr dieses einspielen zu können. Bei der Anpassung von Übersetzungen eines Themes ist das aber wieder eine andere Sache. Das geht leider nicht ohne weiteres. Verwendet man allerdings ein Theme-Framework wie Thematic, für das man ein Child-Theme erstellen kann, dann gibt es dazu eine recht einfache Lösung.</p>
<p><span id="more-1341"></span></p>
<h2>Die Problemstellung</h2>
<p>Für den Blog wollten wir den String &#8220;Tag Archives:&#8221; in &#8220;Schlagwort:&#8221; übersetzen. Die normale Übersetzung hierfür in Thematic ist &#8220;Tag-Archiv:&#8221;.  Der erste Anstz war wie schon erwähnt das Bearbeiten der originalen Übersetzungsdatei, was aber zu dem beschriebenen Update Problem führt.</p>
<h2>Die Lösung</h2>
<p>Seit der Einführung von Child-Themes gibt es die Möglichkeit auch eine Übersetzungsdatei für ein Child-Theme zu laden. Dazu wird die Funktion <a href="http://wpseek.com/source/wp/latest/nav.html?wp-includes/l10n.php.html#load_child_theme_textdomain">load_child_theme_textdomain()</a> verwendet, die allerdings noch nicht in <a href="http://codex.wordpress.org/">Codex</a> dokumentiert ist. Als ersten Parameter erwartet die Funktion eine Domain, also einen String, der auch in den Übersetzungsfunktionen verwendet wird. Sehen wir uns dazu folgendes Beispiel an:</p>
<pre class="brush: php; gutter: false; title: ; notranslate">
$content = __('Tag Archives:', 'thematic');
</pre>
<p>In diesem Beispiel ist der zu übersetzende String &#8220;Tag Archives:&#8221; und die Domain ist &#8220;thematic&#8221;. Normalerweise verwendet man für sein Child-Theme eine eigene Domain, aber man kann auch die Domain &#8220;thematic&#8221; verwenden. Genau das ist auch der Trick, um eine Übersetzung von Thematic zu überschreiben. Wir verwenden einfach eine eigene Child-Theme Übersetzungsdatei zum überschreiben bestehender Strings.</p>
<p>Der zweite Parameter der Funktion <code>load_child_theme_textdomain()</code> ist optional und gibt den Pfad zur Übersetzungsdatei an. Wenn sich diese direkt in eurem Child-Theme-Ordner befindet, dann müsst ihr ihn nicht angeben. In unserem Blog haben wir aber einen Ordner &#8220;languages&#8221; erzeugt, in dem die Übersetzungen liegen. Wir müssen daher den absoluten Dateipfad zu diesem Ordner angeben. Den absoluten Pfad zum Child-Theme Ordner liefert uns die Funktion <a href="http://codex.wordpress.org/Function_Reference/get_stylesheet_directory">get_stylesheet_directory()</a>. Das einbinden unserer Übersetzungsdatei sieht also wie folgt aus:</p>
<pre class="brush: php; gutter: false; title: ; notranslate">
load_child_theme_textdomain('thematic', get_stylesheet_directory() . '/languages' );
</pre>
<p>Das ist auch schon alles. Mit dieser einem Zeile in der Datei &#8220;functions.php&#8221; eures Child-Themes könnt ihr eure eigene Übersetzungsdatei einbinden. Wie ihr seht verwende ich hier die Domain &#8220;thematic&#8221; um auch die Übersetzungen von Thematic überschreiben zu können. Ihr müsst dazu auch nicht den gesamten Inhalt der Übersetzungsdatei aus Thematic in eure kopieren. Es reicht aus, wenn ihr nur die zu ändernden Strings einfügt. Ihr könnt selbstverständlich auch eigene Strings einfügen, die ihr eventuell in eurem Child-Theme verwendet. Dabei müsst ihr dann nur in der Übersetzungsfunktion ebenfalls &#8220;thematic&#8221; als Domain angeben.</p>
<p>Ich hoffe, der Tipp konnte euch zeigen, was man mit Child-Themes alles machen kann und wieso die Verwendung eines Thema-Frameworks die Individualisierung eures Themes nicht unbedingt einschränkt. Mein Blog wir eventuell im Laufe des Jahres auch ein neues Design bekommen und mit den bisher gesammelten Erfahrungen zu Thematic, werde ich wohl auch hierfür auf ein Child-Theme setzen und nicht auf ein komplett eigenes Theme. Über Kritik und Kommentare würde ich mich wie immer sehr freuen.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/maC0pMpT4FMPTfuyoFrfdWRpYZw/0/da"><img src="http://feedads.g.doubleclick.net/~a/maC0pMpT4FMPTfuyoFrfdWRpYZw/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/maC0pMpT4FMPTfuyoFrfdWRpYZw/1/da"><img src="http://feedads.g.doubleclick.net/~a/maC0pMpT4FMPTfuyoFrfdWRpYZw/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/Kau-boysBlog/~4/bZJrfPBa-ow" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://kau-boys.de/1341/wordpress/lokalisierung-fuer-child-themes-am-beispiel-von-thematic/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://kau-boys.de/1341/wordpress/lokalisierung-fuer-child-themes-am-beispiel-von-thematic?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=lokalisierung-fuer-child-themes-am-beispiel-von-thematic</feedburner:origLink></item>
		<item>
		<title>Versteckte Screenshot-Funktion in Android 2.3.4 auf HTC Sensation</title>
		<link>http://feedproxy.google.com/~r/Kau-boysBlog/~3/bmwMTmS7zW8/versteckte-screenshot-funktion-in-android-2-3-4-auf-htc-sensation</link>
		<comments>http://kau-boys.de/1340/android/versteckte-screenshot-funktion-in-android-2-3-4-auf-htc-sensation#comments</comments>
		<pubDate>Sun, 28 Aug 2011 16:07:34 +0000</pubDate>
		<dc:creator>Bernhard</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[HTC]]></category>

		<guid isPermaLink="false">http://kau-boys.de/1340/android/versteckte-screenshot-funktion-in-android-2-3-4-auf-htc-sensation</guid>
		<description><![CDATA[Dies ist mein erster Artikel, den ich direkt über mein neues Android mit der WordPress App schreibe. Darin geht es heute auch um Android und das letzte Update. Ich hatte mein schönes neues HTC Sensation noch keine Woche so richtig in Betrieb, da wurde mir schon per Benachrichtigung ein Update auf Android 2.3.4 angeboten. Das [...]]]></description>
			<content:encoded><![CDATA[<p>Dies ist mein erster Artikel, den ich direkt über mein neues Android mit der WordPress App schreibe. Darin geht es heute auch um Android und das letzte Update.</p>
<p>Ich hatte mein schönes neues HTC Sensation noch keine Woche so richtig in Betrieb, da wurde mir schon per Benachrichtigung ein Update auf Android 2.3.4 angeboten. Das ging super einfach direkt per WLAN und war in wenigen Minuten runtergeladen und installiert. Ich könnte aber selbst keine großen Änderungen feststellen.</p>
<p>Heute habe ich dann in einer <a href="http://www.golem.de/1108/85709.html">alten Nachricht auf Golem.de</a> gelesen, dass eine wirklichsehr nützliche Funktion mit den Update mitgeliefert wurde: Systemweite Screenshots.</p>
<p>Um einen Screenshot anzufertigen muss der Ein/Aus-Taster und die Home-Taste gleichzeitig gedrückt werden. Dabei zuerst den Ein/Aus-Taster gedrückt halten und dann die Home-Taste drücken. Der Screenshot wird dann im Album &#8220;Kameraaufnahmen&#8221; gespeichert.</p>
<p>Ich finde diese Funktion wirklich sehr nützlich. Vor allem bei Fehlern kann es sehr hilfreich sein einen Screenshots zu machen um ihn dann dem Entwickler der App zu schicken oder in einem Forum zu posten.</p>
<p>Kennt ihr vielleicht auch noch tolle versteckte Funktionen oder Shortcuts in Android? Ich entdecke erst so langsam die vielen Funktionen und würde mich über den ein oder anderen Tipp in einem Kommentar sehr freuen.</p>
<h2>Nachtrag</h2>
<p>Da mein Artikel anscheinend sehr interessant für viele Android-Nutzer ist, habe ich mich mal schlau gemacht, ob es diese Screenshot Funktoin auch für andere Android Smartphones gibt. Leider gab es bisher nur wenige Möglichkeiten überhaupt Screenshots zu erstellen. Ein Möglichkeit ist wohl das <b>Android SDK</b>, wobei hier wohl nur von dem Android Emulator Screenshots gemacht werden konnten, nicht aber von eurem eigenen Smartphone. Die zweite Möglichkeit bietet die Software <b>MyPhoneExplorer</b>. Aber ich habe kein gutes Gefühl dabei einer App so viele Rechte auf mein Smartphone zu geben. Daher habe ich den Einsatz dieser Software bisher vermieden. Die dritte Möglichkeit, die ich gefunden habe, ist die App <b>ShootME</b>, die aber anscheindend nicht mehr offiziell verfügbar ist. Um sie einsetzen zu können muss dass Smartphone aber &#8220;gerootet&#8221; werden. Danach lassen sich dann aber sogar Screencats (also Videos) aufnehmen. Das wäre auch eine geniale Standard-Funktion für Android.</p>
<p>Da es mit Gingerbread nun anscheindend möglich ist, dass Apps direkt auf den Bildschirminhalt zugreifen können (die Berechtigung durch den Benutzer vorausgesetzt), könnte es in Zukunft von weiteren Herstellern eine Funktion für Screenshots geben. Denkbar ist aber auch eine Standard-Funktion in einer der nächsten Android Versionen. Oder es gibt dann Apps wie ShootME, die ohne Root-Rechte funktionieren.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/6rq0IJNvSHmiqH7rSbVFi2s0rd0/0/da"><img src="http://feedads.g.doubleclick.net/~a/6rq0IJNvSHmiqH7rSbVFi2s0rd0/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/6rq0IJNvSHmiqH7rSbVFi2s0rd0/1/da"><img src="http://feedads.g.doubleclick.net/~a/6rq0IJNvSHmiqH7rSbVFi2s0rd0/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/Kau-boysBlog/~4/bmwMTmS7zW8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://kau-boys.de/1340/android/versteckte-screenshot-funktion-in-android-2-3-4-auf-htc-sensation/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://kau-boys.de/1340/android/versteckte-screenshot-funktion-in-android-2-3-4-auf-htc-sensation?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=versteckte-screenshot-funktion-in-android-2-3-4-auf-htc-sensation</feedburner:origLink></item>
		<item>
		<title>Einschleusung von Schadcode in drei beliebte WordPress Plugins und die Folgen</title>
		<link>http://feedproxy.google.com/~r/Kau-boysBlog/~3/2lkR8pxlw18/einschleusung-von-schadcode-in-drei-beliebte-wordpress-plugins-und-die-folgen</link>
		<comments>http://kau-boys.de/1331/wordpress/einschleusung-von-schadcode-in-drei-beliebte-wordpress-plugins-und-die-folgen#comments</comments>
		<pubDate>Wed, 22 Jun 2011 21:43:32 +0000</pubDate>
		<dc:creator>Bernhard</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://kau-boys.de/?p=1331</guid>
		<description><![CDATA[Heute Morgen habe ich nach dem Einloggen ins Backend für meinen Blog wieder die Meldung bekommen, dass unter anderem für das Plugin WPtouch ein Update vorliegt. Ich installiere diese in der Regel immer direkt und prüfe anschließend, ob noch alles wie vorher funktioniert. Mittags habe ich dann bei Golem.de erfahren, wieso WPtouch aktualisiert wurde. Bei [...]]]></description>
			<content:encoded><![CDATA[<p>Heute Morgen habe ich nach dem Einloggen ins Backend für meinen Blog wieder die Meldung bekommen, dass unter anderem für das Plugin WPtouch ein Update vorliegt. Ich installiere diese in der Regel immer direkt und prüfe anschließend, ob noch alles wie vorher funktioniert.</p>
<p>Mittags habe ich dann bei <a href="http://www.golem.de/1106/84391.html">Golem.de</a> erfahren, wieso WPtouch aktualisiert wurde. Bei drei bekannten Plugins (neben <a href="http://wordpress.org/extend/plugins/wptouch/">WPtouch</a> waren es <a href="http://wordpress.org/extend/plugins/addthis/">AddThis</a> und <a href="http://wordpress.org/extend/plugins/w3-total-cache/">W3 Total Cache</a>) wurde Schadcode in das SVN Repository eingeschleust. Wie genau es dazu kam ist nicht bekannt. Es ist aber zu vermuten, dass die Passwörter der Plugin-Autoren geknackt wurden. Details zu den Schäden, die der Schadcode hätte anrichten können, wird zur Zeit vom WordPress Team geprüft.</p>
<p><span id="more-1331"></span></p>
<h2>Die Folgen</h2>
<p>Wie bei Golem.de nachzulesen war, wurden die Passwörter zurückgesetzt. Ich ging zuerst davon aus, dass es sich nur auf die Passwörter der drei Plugins bezieht. Bei einer kleinen Überarbeitung einer meiner Plugins musste ich dann aber feststellen, dass die Passwörter aller WordPress Nutzer zurückgesetzt wurden. Ich habe also auch meines zurückgesetzt und dabei auf ein sichereres geändert.</p>
<p>Nachdem ich mit meinen Änderungen fertig war und diese per Commit in das SVN Repository gestellt habe wurde ich dann natürlich erst einmal nach dem neuen Passwort gefragt. Ein paar Sekunden später hatte ich auch schon eine Mail von WordPress in meinem Postfach. Darin war der Commit inklusive des Changelogs zu finden. Mit dieser Maßnahme wird zwar nicht verhindert, dass Schadcode ins Repository eingeschleust wird. Aber da es ca. 10min dauert, bis eine neue Version auch den Nutzern zum Download angeboten wird, sollte es dem Plugin-Autoren möglich sein, den Code wieder raus zu nehmen.</p>
<h2>Fazit</h2>
<p>Niemand darf blind einem Plugin vertrauen, auch wenn es von einem seriösen Entwickler stammt. Aber es ist vorbildlich, wie WordPress auf diesen &#8220;Einbruch&#8221; reagiert hat. WordPress ist noch immer eine der sichersten CMS- und Blogging-Systeme, wie verschiedene Test immer wieder zeigen. Auch durch die sehr aktive Community werden solche Sicherheitslücken in Zukunft vermutlich sehr schnell gefunden und behoben.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/UV4CF24U9_qrMNo-N4j94QAaHQI/0/da"><img src="http://feedads.g.doubleclick.net/~a/UV4CF24U9_qrMNo-N4j94QAaHQI/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/UV4CF24U9_qrMNo-N4j94QAaHQI/1/da"><img src="http://feedads.g.doubleclick.net/~a/UV4CF24U9_qrMNo-N4j94QAaHQI/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/Kau-boysBlog/~4/2lkR8pxlw18" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://kau-boys.de/1331/wordpress/einschleusung-von-schadcode-in-drei-beliebte-wordpress-plugins-und-die-folgen/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://kau-boys.de/1331/wordpress/einschleusung-von-schadcode-in-drei-beliebte-wordpress-plugins-und-die-folgen?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=einschleusung-von-schadcode-in-drei-beliebte-wordpress-plugins-und-die-folgen</feedburner:origLink></item>
		<item>
		<title>2 Jahre, 100 Artikel, 273 Kommentare und noch lange kein Ende in Sicht</title>
		<link>http://feedproxy.google.com/~r/Kau-boysBlog/~3/asNj6NTGcKM/2-jahre-100-artikel-273-kommentare-und-noch-lange-kein-ende-in-sicht</link>
		<comments>http://kau-boys.de/1319/allgemein/2-jahre-100-artikel-273-kommentare-und-noch-lange-kein-ende-in-sicht#comments</comments>
		<pubDate>Tue, 21 Jun 2011 21:30:22 +0000</pubDate>
		<dc:creator>Bernhard</dc:creator>
				<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://kau-boys.de/?p=1319</guid>
		<description><![CDATA[Heute ist es wieder so weit. Mein Blog hat Geburtstag und wir zwei Jahre alt. Gleichzeitig ist dies auch der 100. Artikel, den ich veröffentliche. Also gleich zwei Gründe zu feiern. Wie im letzten Jahr möchte ich euch einen kleinen Überblick geben, was sich so alles getan hat. Neben den 100 Artikeln kamen 273 Kommentare [...]]]></description>
			<content:encoded><![CDATA[<p>Heute ist es wieder so weit. Mein Blog hat Geburtstag und wir zwei Jahre alt. Gleichzeitig ist dies auch der 100. Artikel, den ich veröffentliche. Also gleich zwei Gründe zu feiern. Wie im letzten Jahr möchte ich euch einen kleinen Überblick geben, was sich so alles getan hat.</p>
<p>Neben den 100 Artikeln kamen 273 Kommentare (105 davon von mir) zusammengekommen. Das sind mit 134 im Vergleich zum letzten Jahr fast gleich viele, wie im ersten Jahr. Dazu haben sich aber seit letztem Jahr ca. 10550 Spam-Kommentare gesellt. Meine Hoffnung diese Quote etwas zu verbessern hat sich also nicht erfüllt.<br />
<del datetime="2011-06-22T18:36:22+00:00"><br />
Der Besucherrekord wurde im letzten Jahr am 18.06.2010 mit 185 Aufrufen aufgestellt. Es besteht aber noch die Hoffnung, dass heute zum 2. Geburtstag dieser Wert noch getoppt wird. Ich schreibe daher den Artikel auch so spät. Es sind aber im Moment nur 184 Aufrufe. Aber vielleicht bekomme ich ja gleich nach dem Veröffentlichen dieses Post noch die fehlenden 2 für den neuen Rekord.</del><br />
<ins datetime="2011-06-22T18:36:22+00:00">Es hat gereicht! Es sind gestern doch noch 192 Aufrufe zusammengekommen. Somit ist der 21.06.2011 nun der Tag mit den meisten Besuchern. Ich habe aber kein Problem damit, wenn der neue Rekord nicht wieder fast ein Jahr benötigt <img src='http://kau-boys.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </ins></p>
<p>Die drei erfolgreichsten Artikel insgesamt waren:</p>
<ol>
<li><a href="http://kau-boys.de/674/webentwicklung/internet-explorer-6-unter-windows-7-nutzen-mit-dem-windows-xp-mode">Internet Explorer 6 unter Windows 7 nutzen mit dem Windows XP Mode</a></li>
<li><a href="http://kau-boys.de/537/hardware/veriface-die-zukunft-der-computersicherheit-oder-nur-eine-tolle-spielerei">VeriFace &#8211; Die Zukunft der Computersicherheit oder nur eine tolle Spielerei?</a></li>
<li><a href="http://kau-boys.de/364/webentwicklung/google-maps-suggest-adress-autovervollstaendigung-mit-scriptaculous">Google Maps Suggest &#8211; Adress-Autovervollständigung mit Scriptaculous</a></li>
</ol>
<p>Letztes Jahr habe ich euch ja an dieser Stelle als kleines Geschenk das Video <a href="http://www.youtube.com/watch?v=YMAvAQ3FhgQ">Gimme Hope Joachim</a> präsentiert. Aber obwohl am Sonntag die Frauen zu ihrer WM starten, gibt es kein Video dazu. Also zeige ich euch eines meiner Absoluten Favoriten aus YouTube. Auch wenn ich kein Schwabe bin, schmeiß ich mich jedes Mal vor Lachen weg:</p>
<p class="aligncenter">
<object type="application/x-shockwave-flash" style="width:480px; height:385px;" data="http://www.youtube.com/v/uF2djJcPO2A"><param name="movie" value="http://www.youtube.com/v/uF2djJcPO2A" /></object>
</p>
<p>Jetzt bleibt mir nur noch euch viel Spaß im kommenden Jahr mit meinem Blog zu wünschen. Vielleicht erfüllt sich ja noch einer meiner Wünsche in diesem Jahr.</p>
<p>Euer<br />
Kau-Boy</p>

<p><a href="http://feedads.g.doubleclick.net/~a/K4icYnMOdYwWY_RxE_sJcsMWB0A/0/da"><img src="http://feedads.g.doubleclick.net/~a/K4icYnMOdYwWY_RxE_sJcsMWB0A/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/K4icYnMOdYwWY_RxE_sJcsMWB0A/1/da"><img src="http://feedads.g.doubleclick.net/~a/K4icYnMOdYwWY_RxE_sJcsMWB0A/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/Kau-boysBlog/~4/asNj6NTGcKM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://kau-boys.de/1319/allgemein/2-jahre-100-artikel-273-kommentare-und-noch-lange-kein-ende-in-sicht/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://kau-boys.de/1319/allgemein/2-jahre-100-artikel-273-kommentare-und-noch-lange-kein-ende-in-sicht?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=2-jahre-100-artikel-273-kommentare-und-noch-lange-kein-ende-in-sicht</feedburner:origLink></item>
		<item>
		<title>Google Chrome Frame ab sofort auch ohne Adminrechte nutzbar</title>
		<link>http://feedproxy.google.com/~r/Kau-boysBlog/~3/J6wn_pmh7rQ/google-chrome-frame-ab-sofort-auch-ohne-adminrechte-nutzbar</link>
		<comments>http://kau-boys.de/1312/webentwicklung/google-chrome-frame-ab-sofort-auch-ohne-adminrechte-nutzbar#comments</comments>
		<pubDate>Mon, 20 Jun 2011 17:28:53 +0000</pubDate>
		<dc:creator>Bernhard</dc:creator>
				<category><![CDATA[Webentwicklung]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Internet Explorer]]></category>

		<guid isPermaLink="false">http://kau-boys.de/?p=1312</guid>
		<description><![CDATA[Vor über einem Jahr hatte ich euch in dem Artikel Blog oder Website fit machen für den IE6 ja berichtet, wie man mit Hilfe des Plugins Google Chrome Frame dem Internet Explorer 6 die Welt von HTML5 eröffnen kann. Das Problem ist aber meistens, das genau die Nutzer, die noch den IE6 verwenden, in einem [...]]]></description>
			<content:encoded><![CDATA[<p>Vor über einem Jahr hatte ich euch in dem Artikel <a href="http://kau-boys.de/662/webentwicklung/blog-oder-website-fit-machen-fuer-den-ie6">Blog oder Website fit machen für den IE6</a> ja berichtet, wie man mit Hilfe des Plugins <a href="http://code.google.com/intl/de/chrome/chromeframe/">Google Chrome Frame</a> dem Internet Explorer 6 die Welt von HTML5 eröffnen kann.</p>
<p>Das Problem ist aber meistens, das genau die Nutzer, die noch den IE6 verwenden, in einem Unternehmen sitzen. Diese können oft nicht selbst auf einen neuen Internet Explorer wechseln und da sie auch keine Berechtigung haben, Software zu installieren, können sie auch das Plugin nicht verwenden. Wie heute unter anderem bei <a href="http://www.golem.de/1106/84336.html">Golem</a> nachzulesen war, hat Google dieses Problem jetzt lösen können.</p>
<p>Mit der <a href="http://www.google.com/chromeframe/eula.html?user=true">aktuellen Entwicklerversion</a> ist kann jeder Nutzer, der nur über eingeschränkt Rechte verfügt Google Chrome Frame verwenden. Somit können Anwendungen, die noch den IE6 voraussetzen weiter genutzt werden und der Nutzer profitiert auf modernen Seiten gleichzeitig von den neuen Funktionen von HTML5, sofern die notwendigen Angaben im HTML-Quellcode gemacht wurden.</p>
<p>Es bliebt zu hoffen, dass möglichst viele Nutzer von dieser Möglichkeit erfahren und wir somit dem überfälligen Ende des IE6 vielleicht etwas näher kommen. Ich überlege zumindest, allen meinen IE6 Nutzern demnächst einen dezenten Hinweis zu geben, was ihnen mit dem Internet Explorer 6 entgeht, und was sie stattdessen sehen könnten.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/yeVV9A3YYpFZsXPmN7eZSZjkyB8/0/da"><img src="http://feedads.g.doubleclick.net/~a/yeVV9A3YYpFZsXPmN7eZSZjkyB8/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/yeVV9A3YYpFZsXPmN7eZSZjkyB8/1/da"><img src="http://feedads.g.doubleclick.net/~a/yeVV9A3YYpFZsXPmN7eZSZjkyB8/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/Kau-boysBlog/~4/J6wn_pmh7rQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://kau-boys.de/1312/webentwicklung/google-chrome-frame-ab-sofort-auch-ohne-adminrechte-nutzbar/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://kau-boys.de/1312/webentwicklung/google-chrome-frame-ab-sofort-auch-ohne-adminrechte-nutzbar?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=google-chrome-frame-ab-sofort-auch-ohne-adminrechte-nutzbar</feedburner:origLink></item>
		<item>
		<title>PHP-Soap auf einem 1&amp;1 ROOT-Server mit openSUSE installieren</title>
		<link>http://feedproxy.google.com/~r/Kau-boysBlog/~3/0Hi6nUZS0Cw/php-soap-auf-einem-1und1-root-server-mit-opensuse-installieren</link>
		<comments>http://kau-boys.de/1307/webserver/php-soap-auf-einem-1und1-root-server-mit-opensuse-installieren#comments</comments>
		<pubDate>Tue, 14 Jun 2011 18:27:23 +0000</pubDate>
		<dc:creator>Bernhard</dc:creator>
				<category><![CDATA[Webserver]]></category>
		<category><![CDATA[Betriebssystem]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://kau-boys.de/?p=1307</guid>
		<description><![CDATA[Ich habe vor kurzem mal wieder einen Webservice, der eine SOAP Schnittstelle bot, per PHP ansprechen müssen. Das ist ja mit den Funktionen, die PHP liefert auch kein Problem und funktioniert dann fast genau so einfach wie der Funktionsausruf einer externen Bibliothek. Um SOAP nutzen zu können, muss es über die php.ini Datei aktiviert werden [...]]]></description>
			<content:encoded><![CDATA[<p>Ich habe vor kurzem mal wieder einen Webservice, der eine SOAP Schnittstelle bot, per PHP ansprechen müssen. Das ist ja mit den Funktionen, die PHP liefert auch kein Problem und funktioniert dann fast genau so einfach wie der Funktionsausruf einer externen Bibliothek.</p>
<p>Um SOAP nutzen zu können, muss es über die php.ini Datei aktiviert werden oder in das Verzeichnis für die Erweiterungen (z.B. unter <code>/usr/lib64/php5/extensions</code>). Was aber, wenn die SOAP Bibliothek nicht installiert ist? Dann muss man es je nach Betriebssystem nachinstallieren. Unter Linux geht das über die Paketmanager oft am einfachsten.</p>
<p>Für openSUSE könnt ihr hierfür den Paketmanager <a href="http://de.opensuse.org/YaST">YAST</a> verwenden. Der Befehl dazu lautet wie folgt:</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">
yast -i php5-soap
</pre>
<p>Der Vorteil bei der Installation über den Paketmanager: Die Bibliothek wird auch gleich in die bestehende Konfiguration eingetragen. Somit könnt ihr direkt nach der Ausführung des Befehls loslegen. Solltet ihr noch nie mit Webservices gearbeitet haben, dann findet ihr in der PHP Doku die <a href="http://php.net/manual/en/book.soap.php">wichtigsten Funktionen von SOAP in PHP</a>.</p>
<p>Jetzt viel Spaß oder auch viel Ärger mit SOAP <img src='http://kau-boys.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<p><a href="http://feedads.g.doubleclick.net/~a/mfy9H8hxbO1gXQ-uWHr7we9qhTE/0/da"><img src="http://feedads.g.doubleclick.net/~a/mfy9H8hxbO1gXQ-uWHr7we9qhTE/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/mfy9H8hxbO1gXQ-uWHr7we9qhTE/1/da"><img src="http://feedads.g.doubleclick.net/~a/mfy9H8hxbO1gXQ-uWHr7we9qhTE/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/Kau-boysBlog/~4/0Hi6nUZS0Cw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://kau-boys.de/1307/webserver/php-soap-auf-einem-1und1-root-server-mit-opensuse-installieren/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://kau-boys.de/1307/webserver/php-soap-auf-einem-1und1-root-server-mit-opensuse-installieren?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=php-soap-auf-einem-1und1-root-server-mit-opensuse-installieren</feedburner:origLink></item>
		<item>
		<title>Ordnerstruktur eines SVN-Repositories richtig aufsetzen</title>
		<link>http://feedproxy.google.com/~r/Kau-boysBlog/~3/jkSZ3gkuXr8/ordnerstruktur-eines-svn-repositories-richtig-aufsetzen</link>
		<comments>http://kau-boys.de/1296/webserver/ordnerstruktur-eines-svn-repositories-richtig-aufsetzen#comments</comments>
		<pubDate>Sat, 04 Jun 2011 20:11:01 +0000</pubDate>
		<dc:creator>Bernhard</dc:creator>
				<category><![CDATA[Webserver]]></category>
		<category><![CDATA[Administration]]></category>
		<category><![CDATA[Subversion]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://kau-boys.de/?p=1296</guid>
		<description><![CDATA[In meinem letzten Artikel Subversion mit WebDAV auf einem Ubuntu Server installieren habe ich euch ja gezeigt, wie man den Server für die Subversion Repositories aufsetzt. Nun geht es aber darum, wie man die Ordnerstruktur eines Projekts gestalten sollte. Wenn man hier von Anfang an auf ein paar Grundlegende Best-Practices achtet, dann erleichtert es einem [...]]]></description>
			<content:encoded><![CDATA[<p>In meinem letzten Artikel <a href="http://kau-boys.de/1271/webserver/subversion-mit-webdav-auf-einem-ubuntu-server-installieren">Subversion mit WebDAV auf einem Ubuntu Server installieren</a> habe ich euch ja gezeigt, wie man den Server für die Subversion Repositories aufsetzt. Nun geht es aber darum, wie man die Ordnerstruktur eines Projekts gestalten sollte. Wenn man hier von Anfang an auf ein paar Grundlegende Best-Practices achtet, dann erleichtert es einem später enorm die Arbeit mit dem Repository.</p>
<h2>Die Grundlegenge Ordnerstruktur</h2>
<p>Es gibt keine fest vorgegebene Struktur für ein Repository. Es hat sich aber eine Struktur herausgebildet, die von den meisten Projekten, die Subversion einsetzen benutzt wird. Diese wird auch in der <a href="http://svnbook.red-bean.com/">SVN-Referenz</a> (<a href="http://svnbook.red-bean.com/nightly/de/">deutsche Übersetzung</a>) beschrieben. Dazu werden im Hauptverzeichnis folgende drei Ordner erstellt:</p>
<p><span id="more-1296"></span></p>
<pre class="brush: plain; gutter: false; title: ; notranslate">
/
	trunk/
	branches/
	tags/
</pre>
<p>Solltet ihr mehrere Projekte in einem Repository verwalten, dann macht es Sinn für jeder eine solche Ordnerstruktur anzulegen:</p>
<pre class="brush: plain; gutter: false; title: ; notranslate">
/
	projekt1/
		trunk/
		branches/
		tags/
	projekt2/
		trunk/
		branches/
		tags/
</pre>
<h2>Neues Repository mit dieser Ordnerstruktur erzeugen</h2>
<p>Am besten erzeugen wir also gleich zu Beginn eines neuen Projekts eine solche Struktur. Gehen wir einfach mal von einem einfachen Repository mit nur einem Projekt aus. Ich möchte euch kurz die notwendigen Befehle aufzeigen um ein Repository für nur ein Projekt mit einer solchen Ordnerstruktur zu erzeugen.</p>
<p>Zuerst einmal erstellen wir in einem beliebigen Ordner ein neues Repository um dieses anschließend verwenden zu können:</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">
svnadmin create /var/svn/public/myproject
</pre>
<p>Um nun die notwendigen Verzeichnisse zu erzeugen gibt es zwei Möglichkeiten:</p>
<ol>
<li>Auschecken des Repositories, erzeugen der Ordner und commit der Ordnerstruktur</li>
<li>Direktes erzeugen der Ordner im Repository</li>
</ol>
<p>Die erste Variante bietet sich an, wenn man gleich mehrere Projekte mit der Ordnerstruktur erzeugen möchte. Ich zeige euch hier kurz, welche Befehle dabei in Unix-Systemen notwendig wären:</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">
cd ~
mkdir project
cd project/
svn checkout http://kau-boys.de/svn/myproject
cd myproject/
mkdir trunk tags branches
</pre>
<p>Jetzt müssen wir die Ordner zum Hinzufügen in das Repository markieren mit dem Befehl <code>svn add</code>:</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">
svn add trunk tags branches

A         trunk
A         tags
A         branches
</pre>
<p>Jetzt können wir diese Ordnerstruktur in das Repository commiten:</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">
svn commit -m &quot;Import der initialen Ordnerstruktur&quot;

Adding         branches
Adding         tags
Adding         trunk

Committed revision 1.
</pre>
<p>Die andere Möglichkeit ist wesentlich einfacher und erfordert nur einen einzigen Befehl. Dieser erzeugt die Ordnerstruktur direkt im Repository. Auch hier wäre es möglich die Ordner gleich für mehrere Projekte anzulegen (was ihr am besten mit mehreren Befehlen macht):</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">
svn mkdir -m &quot;Import der initialen Ordnerstruktur&quot; \
	file:///var/svn/myproject/trunk \
	file:///var/svn/myproject/tags \
	file:///var/svn/myproject/branches

Committed revision 1.
</pre>
<p>Wie ihr seht ist diese Variante sehr viel einfacher. Gerade für den Administrator eines Repositories ist er praktischer. Man könnte den z.B. den gesamten Prozess zur Erzeugung eines Repositories und der Ordnerstruktur in einem Skript zusammenfassen, dass alle notwendigen Befehle automatisch hintereinander ausführt.</p>
<h2>Das richtige Verzeichnis auschecken</h2>
<p>Ganz wichtig ist es nun aber, dass ihr auch das richtige Verzeichnis benutzt um euer Projekt zu starten. Solltet ihr die Ordnerstruktur wie in der ersten Variante erzeugt haben, wechselt in eure Working Copy und benutzt dort den Befehl <code>svn switch</code> um auf das <i>trunk</i> Verzeichnis zu wechseln:</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">
cd ~/myproject
svn switch http://kau-boys.de/svn/myproject/trunk

D    trunk
D    branches
D    tags
</pre>
<p>Wie ihr sehen könnt, wurden die Ordner gelöscht, da ihr euch nun &#8220;im Ordner trunk&#8221; befindet. In diesem könnt ihr nun eure Dateien des Projekts commiten.</p>
<p>Wenn ihr die Ordnerstruktur wie in Variante 2 erzeugt habt, dann müsst ihr lediglich das richtige Verzeichnis auschecken. Gebt also direkt den <i>trunk</i> Ordner bei auschecken an:</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">
cd ~
svn checkout http://kau-boys.de/svn/myproject/trunk myproject

Checked out revision 1.
</pre>
<p>Damit der Ordner aber dabei nicht <i>trunk</i> heißt geben wir beim <i>checkout</i> Befehl gleich den Namen des Ordners an, den unser Projekt nachher haben soll, also in diesem Fall <i>myproject</i>.</p>
<h2>Fazit</h2>
<p>Ihr habt nun also gesehen, wie man eine gute Ordnerstruktur für Subversion-Projekte anlegt. Falls ihr euch aber fragt, wieso das so wichtig ist, dann seht euch mal <a href="http://svnbook.red-bean.com/en/1.1/ch04.html">Kapitel 4 der SVN-Referenz</a> (<a href="http://svnbook.red-bean.com/nightly/de/svn.branchmerge.html">deutsche Übersetzung</a>) an. Ich mal bei einem Projekt zwar einen Ordner <i>trunk</i> erzeugt aber diesen als Root-Verzeichnis meines Repositories benutzt. Als ich dann (ca. 10000 Commits später) dann doch mal branches einsetzen wollte, bekam ich natürlich Probleme, da ich dann erst die Unterverzeichnisse erzeugt habe und alle anderen Order und Dateien per <code>svn move</code> in den Ordner <i>trunk</i> verschieben musste. Dabei bleibt zwar die History aller Dateien erhalten, aber jeder Benutzer musste den Pfad zum Repository aktualisieren und dann in den neuen <i>trunk</i> Ordner wechseln.</p>
<p>Wenn ihr euch also schon immer zu Beginn eines neuen Projekts die Ordner erzeugt spart ihr euch nachher viel Arbeit. Selbst wenn ihr denkt, niemals so komplex zu werden, dann seht mal in der SVN-Referenz unter dem Stichpunkt Feature-Release nach. So etwas könnte auch euch mal passieren. Also spart nicht an dem einen Befehl und den drei Ordnern <img src='http://kau-boys.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<p><a href="http://feedads.g.doubleclick.net/~a/flTmiIT5GdJ4TNDzMEDNm3sObEQ/0/da"><img src="http://feedads.g.doubleclick.net/~a/flTmiIT5GdJ4TNDzMEDNm3sObEQ/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/flTmiIT5GdJ4TNDzMEDNm3sObEQ/1/da"><img src="http://feedads.g.doubleclick.net/~a/flTmiIT5GdJ4TNDzMEDNm3sObEQ/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/Kau-boysBlog/~4/jkSZ3gkuXr8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://kau-boys.de/1296/webserver/ordnerstruktur-eines-svn-repositories-richtig-aufsetzen/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://kau-boys.de/1296/webserver/ordnerstruktur-eines-svn-repositories-richtig-aufsetzen?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=ordnerstruktur-eines-svn-repositories-richtig-aufsetzen</feedburner:origLink></item>
	</channel>
</rss><!-- Dynamic page generated in 5.289 seconds. --><!-- Cached page generated by WP-Super-Cache on 2012-05-09 19:39:46 -->

