<?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>admirableadmin &#187; php</title>
	<atom:link href="http://admirableadmin.de/tag/php/feed" rel="self" type="application/rss+xml" />
	<link>http://admirableadmin.de</link>
	<description>&#34;Suchst du noch oder lebst du schon?&#34;</description>
	<lastBuildDate>Tue, 24 Jan 2012 23:45:26 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Dotdeb Pakete deinstallieren</title>
		<link>http://admirableadmin.de/123/dotdeb-pakete-deinstallieren</link>
		<comments>http://admirableadmin.de/123/dotdeb-pakete-deinstallieren#comments</comments>
		<pubDate>Sun, 08 Feb 2009 19:09:41 +0000</pubDate>
		<dc:creator>admirableadmin</dc:creator>
				<category><![CDATA[de]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[dotdeb]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://admirableadmin.de/?p=123</guid>
		<description><![CDATA[Bei der Installation von php5-curl gab es unerwartete Probleme mit dem verwendeten PHP von dotdeb. Aktiviert habe ich damals die Dotdeb-Paketverwaltung um in den Genuss von suhosin zu kommen, jedoch ist diese inzwischen auch im offiziellen Debian verfügbar. Jetzt scheiterte aber die Installation von php5-curl per apt-get install mit dem Hinweis: Hängt ab: php5-common (= [...]]]></description>
			<content:encoded><![CDATA[<p>Bei der Installation von php5-curl gab es unerwartete Probleme mit dem verwendeten PHP von dotdeb.</p>
<p><span id="more-123"></span>Aktiviert habe ich <a href="/10/" target="_self">damals</a> die Dotdeb-Paketverwaltung um in den Genuss von <a href="http://www.hardened-php.net/suhosin/" target="_blank">suhosin</a> zu kommen, jedoch ist diese inzwischen auch im offiziellen Debian <a href="http://packages.debian.org/de/etch/php5-suhosin" target="_blank">verfügbar</a>.</p>
<p>Jetzt scheiterte aber die Installation von <em>php5-curl</em> per <em>apt-get install</em> mit dem Hinweis:</p>
<p class="code">Hängt ab: php5-common (= 5.2.0-8+etch13) aber 5.2.8-0.dotdeb.1 soll installiert werden<br />
E: Kaputte Pakete</p>
<p>Ein Blick in die <a href="http://packages.dotdeb.org/dists/etch/" target="_blank">Quellpakete von Dotdeb</a> bestätigte den Verdacht, dass das gesuchte Paket dort gar nicht vorhanden ist. Anscheinend waren dort mal mehr php5 Pakete verfügbar, denn installiert waren noch weitere von dotdeb:</p>
<p class="code"># dpkg &#8211;list | grep dotdeb<br />
ii  php5-cli                          5.2.8-0.dotdeb.1<br />
ii  php5-common                       5.2.8-0.dotdeb.1<br />
ii  php5-dev                          5.2.8-0.dotdeb.1<br />
ii  php5-gd                           5.2.8-0.dotdeb.1<br />
ii  php5-mysql                        5.2.8-0.dotdeb.1<br />
ii  php5-suhosin                      5.2.8-0.dotdeb.1</p>
<p>Nach einem zusätzlichen Vollbackup des Servers und einem auskommentieren der dotdeb-Quelle aus der Datei <em>/etc/apt/sources.list</em> ging es an die Deinstallation der ausgelisteten Pakete inklusive aller Konfigurationsdateien:</p>
<p class="code">dpkg &#8211;purge php5-gd php5-mysql php5-common libapache2-mod-php5 php5-cli</p>
<p>dies scheiterte zunächst, da Debian richtigerweise bemerkte, dass manche Programme von den zu löschenden noch benötigt wurden. Temporär wurden diese dann kurzerhand auch deinstalliert, aber die Konfiguration beibehalten:</p>
<p class="code">apt-get remove phpmyadmin phpsysinfo squirrelmail libphp-phpmailer</p>
<p>Nach der Neuinstallation aller Pakete aus der offiziellen Debian-Quelle, sowie der temporär deinstallierten Pakete, musste lediglich die mysql-Unterstützung in der <em>php.ini</em> händisch wieder aktiviert werden:</p>
<p class="code">extension=mysql.so</p>
<p>Anschließend konnte ich erfolgreich php5-curl installieren:</p>
<p class="code">apt-get install php5-curl<br />
Paketlisten werden gelesen&#8230; Fertig<br />
Abhängigkeitsbaum wird aufgebaut&#8230; Fertig<br />
Die folgenden NEUEN Pakete werden installiert:<br />
php5-curl</p>
<p>Vielleicht hätte das auch anders funktioniert.</p>
]]></content:encoded>
			<wfw:commentRss>http://admirableadmin.de/123/dotdeb-pakete-deinstallieren/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP Fehlermeldungen protokollieren</title>
		<link>http://admirableadmin.de/119/php-fehlermeldungen-protokollieren</link>
		<comments>http://admirableadmin.de/119/php-fehlermeldungen-protokollieren#comments</comments>
		<pubDate>Sat, 07 Feb 2009 15:24:20 +0000</pubDate>
		<dc:creator>admirableadmin</dc:creator>
				<category><![CDATA[de]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://admirableadmin.de/?p=119</guid>
		<description><![CDATA[Statt der Anzeige der Fehlerausgaben von PHP am Monitor, sollte diese auch aus Sicht der Sicherheit in eine Protokolldatei geschrieben werden. Dazu in der Datei /etc/php5/apache2/php.ini folgende Änderungen nötig: display_errors = Off log_errors = On error_log = /var/log/php_error.log Liste der php.ini-Direktiven]]></description>
			<content:encoded><![CDATA[<p>Statt der Anzeige der Fehlerausgaben von PHP am Monitor, sollte diese auch aus Sicht der Sicherheit in eine Protokolldatei geschrieben werden.</p>
<p><span id="more-119"></span>Dazu in der Datei <em>/etc/php5/apache2/php.ini</em> folgende Änderungen nötig:</p>
<p class="code">display_errors = Off<br />
log_errors = On<br />
error_log = /var/log/php_error.log</p>
<p class="favorite"><a href="http://de3.php.net/manual/de/ini.list.php" target="_blank">Liste der php.ini-Direktiven</a></p>
]]></content:encoded>
			<wfw:commentRss>http://admirableadmin.de/119/php-fehlermeldungen-protokollieren/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Konfigurationsdateien im Apache sperren</title>
		<link>http://admirableadmin.de/75/konfigurationsdateien-im-apache-sperren</link>
		<comments>http://admirableadmin.de/75/konfigurationsdateien-im-apache-sperren#comments</comments>
		<pubDate>Tue, 18 Nov 2008 17:33:17 +0000</pubDate>
		<dc:creator>admirableadmin</dc:creator>
				<category><![CDATA[de]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://admirableadmin.de/?p=75</guid>
		<description><![CDATA[Alle Dateien die nicht von Apache bzw. PHP verarbeitet werden, werden im Klartext im Browser des Besuchers angezeigt. Dateien, die sensible Informationen wie Kennwörter enthalten, können so auch eingesehen werden. Ein übliches Vorgehen ist es solche Dateien erst gar nicht in das root Verzeichnis abzulegen, sondern auf gleicher Ebene parallel zum htdocs-Ordner. Da dies mitunter [...]]]></description>
			<content:encoded><![CDATA[<p>Alle Dateien die nicht von Apache bzw. PHP verarbeitet werden, werden im Klartext im Browser des Besuchers angezeigt. Dateien, die sensible Informationen wie Kennwörter enthalten, können so auch eingesehen werden.</p>
<p><span id="more-75"></span></p>
<p>Ein übliches Vorgehen ist es solche Dateien erst gar nicht in das root Verzeichnis abzulegen, sondern auf gleicher Ebene parallel zum htdocs-Ordner. Da dies mitunter nicht möglich ist, werden Dateien mit der Endung .inc in einem Unterordner abgelegt und sind so für Besucher einsehbar.</p>
<p>Um dies zu vermeiden hilft die folgende Einstellung die man im jeweiligen vhost von Apache hinterlegt:</p>
<p class="code">&lt;Files  ~ &#8220;\.inc$&#8221;&gt;<br />
Order allow,deny<br />
Deny from all<br />
&lt;/Files&gt;</p>
<p>Ruft ein Besucher nun diese Datei auf, so erhält er eine Fehlermeldung statt dem Inhalt der Datei. Von PHP aus ist der Zugriff auf die Datei weiterhin möglich um z.B. Kennwörter zur Datenbank auszulesen.</p>
<p class="favorite"><a href="http://php-faq.de/q-db-passwort.html" target="_blank">Wie kann ich mein Datenbankpasswort gegen Spionage sichern?<br />
</a></p>
]]></content:encoded>
			<wfw:commentRss>http://admirableadmin.de/75/konfigurationsdateien-im-apache-sperren/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Apache: php4 und php5 parallel</title>
		<link>http://admirableadmin.de/32/apache-php4-und-php5-parallel</link>
		<comments>http://admirableadmin.de/32/apache-php4-und-php5-parallel#comments</comments>
		<pubDate>Wed, 19 Mar 2008 18:25:28 +0000</pubDate>
		<dc:creator>admirableadmin</dc:creator>
				<category><![CDATA[de]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://admirableadmin.de/32/</guid>
		<description><![CDATA[Um den Umstieg von php4 auf php5 zu proben oder um für eine bestimmte Seite die neue Version von php zur Verfügung zu stellen, hilft ein Blick ein die folgende Anleitung. Mit php 4.4.8 ist vermutlich die letzte Version von PHP4 erschienen. Der Support für diesen Versionszweig wurde somit auch mit Ablauf des Jahres 2007 [...]]]></description>
			<content:encoded><![CDATA[<p>Um den Umstieg von php4 auf php5 zu proben oder um für eine bestimmte Seite die neue Version von php zur Verfügung zu stellen, hilft ein Blick ein die folgende Anleitung.</p>
<p><span id="more-32"></span> Mit <a href="http://php.net/archive/2008.php#2008-01-03-1" target="_blank">php 4.4.8</a> ist vermutlich die letzte Version von PHP4 erschienen. Der Support für diesen Versionszweig wurde somit auch mit Ablauf des Jahres 2007 eingestellt. Darum ist es sinnvoll auf die aktuelle Version zu aktualisieren, was jedoch auf einem Produktiv-Server nicht so einfach möglich ist, da eventuell Anhängigkeiten bestehen. Auf der Internetseite von PHP sind <a href="http://de.php.net/manual/de/migration5.php">Tipps</a> und eine <a href="http://de.php.net/manual/de/faq.migration5.php">FAQ</a> bereitgestellt.</p>
<p>Üblicherweise läuft auf dem Server bereits php4 als Apache-Modul. Aufgrund der Anhängigkeiten von Debian ist es nicht möglich php5 als Zusatzmodul zu installieren, da sonst direkt php4 deinstalliert würde. Darum wird php5 mit den benötigten Zusatzmodulen als CGI-Modul (<a href="http://de.wikipedia.org/wiki/Common_Gateway_Interface">Wikipedia</a>) eingerichtet:</p>
<p class="code">apt-get install php5-cgi php5-gd php5-mcrypt php5-mhash php5-mysql php5-recode</p>
<p>Der Reihe nach werden nun einige Apache-Module aktiviert, die wie <em>actions </em>benötigt werden, sonst läuft php5 nicht als CGI-Modul:</p>
<p class="code">a2enmod actions<br />
a2enmod ssl<br />
a2enmod rewrite<br />
a2enmod suexec<br />
a2enmod include</p>
<p>Die Konfiguration findet in der Datei <em>/etc/apache2/apache2.conf</em> statt, wo auch <em>AddType</em> und <em>AddHandler</em> definiert werden:</p>
<p class="code">ScriptAlias /cgi-bin/ &#8220;/usr/lib/cgi-bin/&#8221;<br />
AddType application/x-httpd-php5 .php5<br />
Action application/x-httpd-php5 &#8220;/cgi-bin/php&#8221;</p>
<p>Somit werden alle Dateien mit der Endung .php5 vom CGI-Modul verarbeitet statt mit dem Apache-Modul. Alle Dateien jedoch umzubenennen wäre jetzt eine Menge Arbeit. Es geht einfacher indem im gewünschten VHost, die folgenden Zeilen eingetragen werden:</p>
<p class="code">&lt;VirtualHost *:80&gt;<br />
&lt;Directory  /var/www/htdocs &gt;<br />
Options +ExecCGI<br />
&lt;/Directory&gt;<br />
AddType application/x-httpd-php5 .php<br />
&lt;/VirtualHost&gt;</p>
<p>Nun werden alle Dateien mit php5 ausgeliefert und die Seite kann ausgiebig getestet werden bevor der komplette Umstieg von php4 zu php5 gemacht wird.</p>
<p>Ein testen der aktuellen  Konfiguration und ein anschließender Neustart ist selbsverständlich:</p>
<p class="code"> apache2ctl configtest<br />
apache2ctl restart</p>
]]></content:encoded>
			<wfw:commentRss>http://admirableadmin.de/32/apache-php4-und-php5-parallel/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>PHP: Seiten zwischenspeichern</title>
		<link>http://admirableadmin.de/27/php-seiten-zwischenspeichern</link>
		<comments>http://admirableadmin.de/27/php-seiten-zwischenspeichern#comments</comments>
		<pubDate>Tue, 06 Nov 2007 18:00:11 +0000</pubDate>
		<dc:creator>admirableadmin</dc:creator>
				<category><![CDATA[de]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://admirableadmin.de/27/</guid>
		<description><![CDATA[Jede PHP-Seite wird Serverseitig bei jedem Zugriff neu berechnet. Da liegt es nahe diese Seite zwischenzuspeichern. Mit eAccelerator ist dies einfach möglich. Die Beschleunigung der auszuliefernden Seiten wird mit eAccelerator (Wikipedia) dadurch erreicht, das diese auf dem Server in einer bereits kompilierten Version gespeichert werden. Bei einem erneuten Aufruf der der gleichen Seite entfällt das [...]]]></description>
			<content:encoded><![CDATA[<p>Jede PHP-Seite wird Serverseitig bei jedem Zugriff neu berechnet. Da liegt es nahe diese Seite zwischenzuspeichern. Mit eAccelerator ist dies einfach möglich.</p>
<p><span id="more-27"></span></p>
<p>Die Beschleunigung der auszuliefernden Seiten wird mit eAccelerator  (<a href="http://http://de.wikipedia.org/wiki/EAccelerator" target="_blank">Wikipedia</a>) dadurch erreicht, das diese auf dem Server in einer bereits kompilierten Version gespeichert werden. Bei einem erneuten Aufruf der der gleichen Seite entfällt das wiederholte umwandeln durch PHP, da nun die Seite aus dem Zwischenspeicher geladen wird.</p>
<p>Zunächst müssen unter Debian einige notwendige Pakte installiert werden, passend zur PHP-Version.</p>
<p class="code">apt-get install make bzip2 php5-dev</p>
<p>Die <a href="http://www.eaccelerator.net/" target="_blank">aktuelle Version von eAccelerator</a> wird z.b. mit wget runtergeladen, entpackt, kompiliert und installiert:</p>
<p class="code">tar jxvf eaccelerator-0.9.5.2.tar.bz2<br />
cd eaccelerator-0.9.5.2<br />
/usr/bin/phpize<br />
./configure &#8211;enable-eaccelerator=shared &#8211;with-php-config=/usr/bin/php-config<br />
make<br />
make install</p>
<p>Jetzt wird PHP noch in der Datei <em>/etc/php5/apache2/php.ini</em> konfiguriert</p>
<p class="code"> ; eaccelerator<br />
extension=&#8221;eaccelerator.so&#8221;<br />
eaccelerator.shm_size=&#8221;128&#8243;<br />
eaccelerator.cache_dir=&#8221;/var/cache/eaccelerator&#8221;<br />
eaccelerator.enable=&#8221;1&#8243;<br />
eaccelerator.optimizer=&#8221;1&#8243;<br />
eaccelerator.check_mtime=&#8221;1&#8243;<br />
eaccelerator.debug=&#8221;0&#8243;<br />
eaccelerator.filter=&#8221;"<br />
eaccelerator.shm_max=&#8221;0&#8243;<br />
eaccelerator.shm_ttl=&#8221;0&#8243;<br />
eaccelerator.shm_prune_period=&#8221;0&#8243;<br />
eaccelerator.shm_only=&#8221;0&#8243;<br />
eaccelerator.compress=&#8221;1&#8243;<br />
eaccelerator.compress_level=&#8221;9&#8243;<br />
eaccelerator.allowed_admin_path=&#8221;/var/www/webserverpfad/htdocs/&#8221;</p>
<p>Das Verzeichnis für den Zwischenspeicher wird angelegt und die Steuer-Datei in das gewünscht Verzeichnis kopiert. Das Zugangsdaten sind dort natürlich noch zu ändern.</p>
<p class="code">mkdir /var/cache/eaccelerator<br />
cp control.php /var/www/webserverpfad/htdocs/eaccelerator.php</p>
<p>Von der einwandfreien Funktion kann man sich nun nach einen Serverneustart mit einem phpinfo(); und über einen Blick in die Steuer-Datei überzeugen.</p>
]]></content:encoded>
			<wfw:commentRss>http://admirableadmin.de/27/php-seiten-zwischenspeichern/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ip2map &#8211; geografische IP-Anzeige mit Ajax</title>
		<link>http://admirableadmin.de/21/ip2map-geografische-ip-anzeige-mit-ajax</link>
		<comments>http://admirableadmin.de/21/ip2map-geografische-ip-anzeige-mit-ajax#comments</comments>
		<pubDate>Mon, 10 Sep 2007 22:05:58 +0000</pubDate>
		<dc:creator>admirableadmin</dc:creator>
				<category><![CDATA[de]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[pear]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[web-2.0]]></category>

		<guid isPermaLink="false">http://admirableadmin.de/21/</guid>
		<description><![CDATA[Google bietet viele zumeist kostenlose Dienste an, unter anderem auch das beliebte Google-Maps welches auch für die eigene Homepage verwendet werden kann, nicht nur um einen Anfahrtsplan anzuzeigen. Um den ungefähren Standort einer IP-Adresse (Wikipedia) in einer Landkarte anzuzeigen, wird das sog. Geotargeting (Wikipedia) verwendet. 1. Voraussetzungen Dazu ist neben einem kostenlosen &#8220;Google Maps API [...]]]></description>
			<content:encoded><![CDATA[<p>Google bietet viele zumeist <a href="http://www.google.de/intl/de/options/" target="_blank">kostenlose Dienste</a> an, unter anderem auch das beliebte <a href="http://maps.google.de/maps" target="_blank">Google-Maps</a> welches auch für die eigene Homepage verwendet werden kann, nicht nur um einen Anfahrtsplan anzuzeigen.</p>
<p><span id="more-21"></span></p>
<p>Um den ungefähren Standort einer IP-Adresse (<a href="http://de.wikipedia.org/wiki/IP-Adresse" target="_blank">Wikipedia</a>) in einer Landkarte anzuzeigen, wird das sog. Geotargeting (<a href="http://de.wikipedia.org/wiki/Geotargeting" target="_blank">Wikipedia</a>) verwendet.</p>
<p><strong>1. Voraussetzungen</strong></p>
<p>Dazu ist neben einem kostenlosen &#8220;<a href="http://www.google.com/apis/maps/index.html">Google Maps API key</a>&#8221; eine Datenbank nötig, welche der IP-Adressen einer geografischen Position zuordnen kann. Der Hersteller <a href="http://maxmind.com/" target="_blank">MaxMind</a> bietet mit <a href="http://www.maxmind.com/app/geolitecity">GeoLite City</a> eine kostenlose Datenbank (LGPL-Lizenz) welche dazu optimal geeignet ist.</p>
<p><strong>2. Installation von PEAR Net_GeoIP</strong></p>
<p>In Kombination mit dem PHP PEAR-Paket <a href="http://pear.php.net/package/Net_GeoIP/" target="_blank">Net_GeoIP</a> können nun Anfragen an die Datenbank gestellt werden um diese grafisch ausgegeben zu können. Dieses Paket befindet sich zwar unverändert seit einem Jahr im Beta-Stadium, kann aber einfach installiert werden über:</p>
<p class="code">pear install channel://pear.php.net/Net_GeoIP-1.0.0RC1</p>
<p><strong>3. Programmfunktion mit AJAX (index.php)<br />
</strong></p>
<p>Aktuell ist der Web 2.0 Standards (<a href="http://de.wikipedia.org/wiki/Web_2.0" target="_blank">Wikipedia</a>) das Maß der Dinge, warum auch hier AJAX (<a href="http://de.wikipedia.org/wiki/Ajax_%28Programmierung%29" target="_blank">Wikipdia</a>) eingesetzt wird. Dazu gilt es zu allererst zu beachten, dass die Browser intern unterschiedlich die Daten anfordern. Um dies zu umgehen gibt es eine Möglichkeit um <a href="http://design-noir.de/webdev/JS/XMLHttpRequest-IE/" target="_blank">XMLHttpRequest Anfragen im Internet-Explorer</a> und in anderen Browsern gleichermaßen zu behandeln. Eine Erklärung der einzelnen Funktionen der Google-Map lässt sich über die umfangreiche <a href="http://www.google.com/apis/maps/documentation/" target="_blank">API-Dokumentation</a> nachschlagen.</p>
<p><strong>4. Zugriff auf die Datenbank (GeoLiteCity.php)</strong></p>
<p>Aus der Datenbank werden nur die Koordinaten-Werte (Latitude/Longitude) benötigt. Weitere Ausgaben wie Stadt und Region sind ebenfalls möglich. Diese würden sich dann ebenfalls in der Landkarte anzeigen lassen.</p>
<p><strong>5. Finale</strong></p>
<p class="favorite"><a href="http://able.admirableadmin.de/ip2map/">Beispiel<br />
</a><a href="http://able.admirableadmin.de/ip2map/admirableadmin-ip2map-070911.tgz">Download</a></p>
]]></content:encoded>
			<wfw:commentRss>http://admirableadmin.de/21/ip2map-geografische-ip-anzeige-mit-ajax/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP: Versionsinformationen verstecken</title>
		<link>http://admirableadmin.de/11/php-versionsinformationen-verstecken</link>
		<comments>http://admirableadmin.de/11/php-versionsinformationen-verstecken#comments</comments>
		<pubDate>Wed, 04 Jul 2007 16:56:32 +0000</pubDate>
		<dc:creator>admirableadmin</dc:creator>
				<category><![CDATA[de]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://admirableadmin.de/11/</guid>
		<description><![CDATA[Bei jeder Anfrage an dynamische Webseiten wird im sog. Header bei PHP-Seiten eine zusätzliche Information zur Versionsnummer mitgeschickt. Dies kann deaktiviert werden. Den aktuellen auskunftsfreudigen Zustand des Servers kann man mit dem Firefox Add-on Live HTTP Headers überprüfen: X-Powered-By: PHP/5.2.3 Es hat nichts mit mehr Sicherheit zu tun diese Ausgabe zu verhindern, jedoch teilt man [...]]]></description>
			<content:encoded><![CDATA[<p>Bei jeder Anfrage an dynamische Webseiten wird im sog. Header bei PHP-Seiten eine zusätzliche Information zur Versionsnummer mitgeschickt. Dies kann deaktiviert werden.</p>
<p><span id="more-11"></span></p>
<p>Den aktuellen auskunftsfreudigen Zustand des Servers kann man mit dem Firefox Add-on <a href="https://addons.mozilla.org/en-US/firefox/addon/3829">Live HTTP Headers</a> überprüfen:</p>
<p class="info">X-Powered-By: PHP/5.2.3</p>
<p>Es hat nichts mit mehr Sicherheit zu tun diese Ausgabe zu verhindern, jedoch teilt man so einem Freizeit-Hacker nicht gleich mit, für welche Version Sicherheitslücken gefunden werden können.</p>
<p>In der  Konfigurations-Datei für PHP, also der <em>php.ini,</em> gibt es eine Einstellung die wie folgt verändert werden kann um die Versionsnformationen nicht mehr anzuzeigen:</p>
<p class="code">expose_php = Off</p>
<p>nach einem neuladen der Konfigurationsdateien mit</p>
<p class="code">apache2ctl graceful</p>
<p>steht Apache wieder bereit, jetzt jedoch ohne &#8220;X-Powered-By&#8221; Feld.</p>
<p class="favorite"><a href="http://de3.php.net/manual/de/ini.core.php" target="_blank">Beschreibung der core php.ini Einstellungen</a></p>
]]></content:encoded>
			<wfw:commentRss>http://admirableadmin.de/11/php-versionsinformationen-verstecken/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP: Sicherheit mit suhosin</title>
		<link>http://admirableadmin.de/10/php-sicherheit-mit-suhosin</link>
		<comments>http://admirableadmin.de/10/php-sicherheit-mit-suhosin#comments</comments>
		<pubDate>Mon, 02 Jul 2007 21:32:37 +0000</pubDate>
		<dc:creator>admirableadmin</dc:creator>
				<category><![CDATA[de]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[dotdeb]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://admirableadmin.de/10/</guid>
		<description><![CDATA[Selbst geschriebene oder OpenSource PHP-Anwendungen, wie auch dieser Blog, sind immer nur begrenzt sicher. Immer wieder werden Sicherheitslücken gefunden und es beginnt ein Wettlauf im aktualisieren bevor jemand versucht diese Lücke anhand von einem fertigen Exploit (Wikipedia) auszuprobieren. Hier hilft vorbeugen. Suhosin ist ein umfangreiches Schutzsystem für die eigene PHP Installation. Entwickelt wurde dieser Patch, [...]]]></description>
			<content:encoded><![CDATA[<p>Selbst geschriebene oder OpenSource PHP-Anwendungen, wie auch dieser Blog, sind immer nur begrenzt sicher. Immer wieder werden Sicherheitslücken gefunden und es beginnt ein Wettlauf im aktualisieren bevor jemand versucht diese Lücke anhand von einem fertigen Exploit (<a href="http://de.wikipedia.org/wiki/Exploit" target="_blank">Wikipedia</a>) auszuprobieren.</p>
<p><span id="more-10"></span>Hier hilft vorbeugen. <a href="http://www.hardened-php.net/suhosin/index.html" target="_blank">Suhosin</a> ist ein umfangreiches Schutzsystem für die eigene PHP Installation. Entwickelt wurde dieser Patch, um Server und Benutzer sowohl vor bekannten und unbekannten Fehlern in PHP Anwendungen als auch im PHP Kern zu schützen. Suhosin besteht aus zwei voneinander unabhängigen Teilen, welche entweder einzeln oder auch kombiniert verwendet werden können.</p>
<p>Der erste Teil ist ein kleiner Patch im PHP Kern, der verschiedene Schutzfunktionen vor low-level Pufferüberläufen und zum Schutz von Format String Schwachstellen, die noch nicht beseitigt wurden oder konsstruktionsbedingt nicht vollständig geschützt werden können.</p>
<p>Der zweite Teil des Suhosin Schutzsystems ist eine mächtige, leistungsfähige PHP Erweiterung, die alle anderen Schutzfunktionen anbietet. Anders als der PHP Patch zur PHP Härtung ist Suhosin binär kompatibel zur PHP Installation und ist ein Mittel, die einer PHP Installation eine binäre Erweiterung beifügt, wie sie beispielsweise auch durch den ZendOptimizer hinzugefügt werden kann. Im weitesten Sinn ist Suhosin also eine Erweiterung für PHP.</p>
<p>Seit Debian <a href="http://packages.debian.org/stable/web/php5-suhosin" target="_blank">Etch ist Suhosin</a> auch als Paket erhältlich und muss also nicht selber kompiliert werden. Da jedoch Debian von Natur aus sehr konservativ gegenüber neuen Version ist, sollte man sich überlegen diese PHP-Pakete  von einer externen Quelle zu beziehen.</p>
<p>Hier bietet sich <a href="http://dotdeb.org/" target="_blank">dotdeb.org</a> an. Was genau in die <em>/etc/apt/sources.list</em> eingetragen werden muss um in den Genuss der aktuellsten Pakete zu kommen steht auf der Webseite. Zu Beachten ist jedoch das diese Pakete wie gesagt von einer externen Quelle stammen und Debian entsprechend vor der Installation warnt.</p>
<p class="code">apt-get install php5-suhosin</p>
<p>hiermit installieren wir suhosin. Da es kein gewöhnliches Plugin für Apache ist, muss es auch nicht erst aktiviert werden, sondern ist nach einem Neuladen der Konfiguration mit sofort aktiv:</p>
<p class="code">apache2ctl graceful</p>
<p>Überprüfen wir das Ganze indem wir eine <em>info.php</em> erstellen und die folgenden Zeilen einfügen:</p>
<p class="code"> &lt;?<br />
phpinfo();<br />
?&gt;</p>
<p>wir finden dort einen Eintrag wie</p>
<p class="code"> This server is protected with the Suhosin Patch 0.9.6.2<br />
Copyright (c) 2006 Hardened-PHP Project</p>
<p>im Error-Log von Apache finden wir nun immer die abgefangenen Anfragen, z.b.
</p>
<p class="code"> [Thu Jun 28 21:41:50 2007] [error] [client 12.23.34.45] ALERT &#8211; configured GET variable value length limit exceeded &#8211; dropped variable &#8216;content&#8217; (attacker &#8217;12.23.34.45&#8242;, file &#8216;/var/www/example.com/www/htdocs/(&#8230;).php&#8217;), referer: http://example.com/(&#8230;).php</p>
<p>Hier noch die Links:</p>
<p class="favorite"><a href="http://www.hardened-php.net/suhosin/index.html" target="_blank">Suhosin<br />
</a><a href="http://packages.debian.org/stable/web/php5-suhosin" target="_blank">Debain Suhosin</a><br />
<a href="http://dotdeb.org/" target="_blank">dotdeb</a></p>
]]></content:encoded>
			<wfw:commentRss>http://admirableadmin.de/10/php-sicherheit-mit-suhosin/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

