| PHP 5.2.x: Sicheres url_include mit cURL |
| Geschrieben von: Michael Loth |
| Mittwoch, den 25. März 2009 um 19:48 Uhr |
|
Problem mit der noch bis PHP4 so gerne genutzten Funktion include "URL"; sind unter PHP5 die hierzu deutlich verbesserten Grundsätzlich sollte daher in der systemweit benutzen php.ini folgendes gesetzt sein: ; Whether to allow the treatment of URLs (like http:// or ftp://) as files. ; Whether to allow include/require to open URLs (like http:// or ftp://) as files. Ein Überschreiben per .htaccess mit folgendem Inhalt wird selbstverständlich ebenfalls verhindert. php_flag allow_url_include 1 Das hat natürlich zur Folge das der folgende Code der unter PHP4 noch so wunderbar (?) lief, unter PHP5 nun eine Fehlermeldung liefert: include "http://www.domain.de/mig.php?pageType=$pageType&currDir=./$sid&sid=$sidℑ=$image"; Diese Fehlermeldung sieht ungefähr so aus: PHP Warning: include(): URL file-access is disabled in the server configuration in /srv/www/www.domain.de/htdocs/article.php on line 153, referer: http://www.domain.de/allarticles.php?menu=11 Ich habe daher einen einfachen Wrapper in die betreffende php-Datei integriert. include "http://www.domain.de/mig.php?pageType=$pageType&currDir=./$sid&sid=$sidℑ=$image"; durch diesen ungefährlichen ersetzen: $include = url_include("http://www.domain.de/mig.php?pageType=$pageType&currDir=./$sid&sid=$sidℑ=$image");Und dann an passender Stelle im gleichen Script unsere einfache Wrapper-Funktion einfügen: function url_include($url) { Die Sicherheitshinweise zu allow_url_include sind hier nachzulesen:http://phpsec.org/projects/phpsecinfo/tests/allow_url_include.html
|
