<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	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/"
	>

<channel>
	<title>infogurke.de &#187; security</title>
	<atom:link href="http://www.infogurke.de/tag/security/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.infogurke.de</link>
	<description>Der Informant aus dem Netz</description>
	<lastBuildDate>Thu, 07 Apr 2011 08:04:24 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Never trust user input &#8211; PHP Fehler Nr. 1</title>
		<link>http://www.infogurke.de/2009/02/never-trust-user-input-php-fehler-nr-1/</link>
		<comments>http://www.infogurke.de/2009/02/never-trust-user-input-php-fehler-nr-1/#comments</comments>
		<pubDate>Thu, 05 Feb 2009 20:19:03 +0000</pubDate>
		<dc:creator>infogurke</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[remote file inclusion]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://www.infogurke.de/?p=293</guid>
		<description><![CDATA[&#60;?php readfile(ROOT_DIR . "/" . $_GET["file"]); ?&#62; Wer kennt diese Zeilen nicht? Jeder der sich einmal mit PHP besch&#228;ftigt hat wird bei diesen Zeile schnell aufmerksam. Meistens findet man diese drei Zeilen in einer download.php, navigation.php oder image.php. In der Website steht dann &#60;a href=&#8221;/download.php?file=/files/antrag-02-2009.pdf&#8221;&#62;Antrag Februar 2009&#60;/a&#62; oder als Bild &#60;img src=&#8221;/img.php?file=/images/thumbnails/01.jpg&#8221; /&#62;. Doch der [...]]]></description>
			<content:encoded><![CDATA[<p><code>&lt;?php<br />
readfile(ROOT_DIR . "/" . $_GET["file"]);<br />
?&gt;<br />
</code></p>
<p>Wer kennt diese Zeilen nicht? Jeder der sich einmal mit PHP besch&#228;ftigt hat wird bei diesen Zeile schnell aufmerksam. Meistens findet man diese drei Zeilen in einer download.php, navigation.php oder image.php.</p>
<p>In der Website steht dann &lt;a href=&#8221;/download.php?file=/files/antrag-02-2009.pdf&#8221;&gt;Antrag Februar 2009&lt;/a&gt; oder als Bild &lt;img src=&#8221;/img.php?file=/images/thumbnails/01.jpg&#8221; /&gt;.</p>
<p>Doch der Programmier hat hier eine der wichtigsten Regeln nicht beachtet:</p>
<p><strong>Never trust user input</strong></p>
<p>Jede Benutzereingabe ist evil und muss &#252;berpr&#252;ft werden. Wenn man solche Scripte in freie Wildbahn findet, kann man nur hoffen, dass der Programmierer lediglich ein Hobby-Projekt betreut(e).</p>
<p>Ein $Script-Kiddie w&#252;rde diese Adresse etwas ver&#228;ndern und darauf hoffen, dass ein Amateur am Werk war:</p>
<p>/download.php?file=index.php</p>
<p>W&#252;rde bei unserem Beispiel die index.php als Quellcode ausliefern. Prinzipiell l&#228;sst sich damit jede Datei aufrufen, auf die PHP zugreifen kann. Bei einem schlecht konfigurierten Server ist so unter Umst&#228;nden schnell der ganze Server betroffen. Letzters traf vor einigen Jahren auch den Sat. 1 &#8220;Computer- und Internetexperten&#8221; <a href="http://de.wikipedia.org/wiki/Peter_Huth_(Computerjournalist)">Peter Huth</a>; nach einem Bericht auf Heise wurde der Server kompromittiert.</p>
<p>Noch schlimmer w&#228;re es &#252;brigens, wenn man readfile() durch include() ersetzt. Damit w&#252;rde eine PHP-Datei von einem fremden Server geladen und ausgef&#252;hrt. Damit k&#246;nnte man seine eigene Scripte auf dem Server ausf&#252;hren! Bei einem guten Hoster ist man davor jedoch gesch&#252;tzt, bzw. man setzt selbst ini_set(&#8220;allow_url_include&#8221;, false) in seiner Anwendung.</p>
<p>Bei Google findet man mit einfachen Abfragen direkt etliche Kandidaten mit dieser <span style="text-decoration: line-through;">Sicherheitsl&#252;cke</span> Einladung.</p>
<p>Zum Schlu&#223; hab ich noch einen <a href="http://www.phpro.org/tutorials/PHP-Security.html">Link</a> zu einem kurzen Tutorial rausgesucht.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.infogurke.de/2009/02/never-trust-user-input-php-fehler-nr-1/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

