Include geht nicht mehr

Hallo seit dem mein Hoster PHP5 instaliert hat geht mein include nicht mehr! Ich weiß keine andere Lösung Code hab ich alles abgesucht aber kein Fehler!

Hier der Link
Paul-Schroeder.com

So ist include eingebunden:
Code:
error_reporting(E_ALL);
if(isset($_GET['page']))  {
$page = $_GET['page'];
include($page.'.php');
}  else  {
include('http://Paul-Schroeder.com/willkommen.php');
}
 
Wenn du von einer URL anstatt von einem Lokalem Pfad includest muss soweit ich weis irgendwas in der PHP.ini umgestellt werden.
Ich würde dir aber sowieso dazu raten die Datei nur über den Pfad zu includen wenn sie eh auf dem selbem Server liegt.
 
Hi,

versuche mal
PHP:
include $page . '.php';
Ich halte es jedoch nicht für klug es jedem zu ermöglichen externe PHP Datein mit ein zu binden. Vielleicht solltest du das nochmal überdenken. Man könnte ja über Post auch eine URL zu einer PHP Datei übergeben.
 
Dein Skript birgt ein Sicherheitsrisiko bezüglich Cross-Site Scripting. Deshalb mein Vorschlag:
PHP:
$page = ( isset($_GET['page']) )
	? $_GET['page']
	: 'willkommen';

if( !strlen(trim($page)) || $page !== basename($page) || $page !== basename($_SERVER['SCRIPT_NAME'], '.php') ) {
	// ungültiger Wert; sollte protokolliert werden, da es ein Angriff sein könnte
	header($_SERVER['SERVER_PROTOCOL'].' 400 Bad Request');
	exit;
}
$path = './'.$page.'.php';
if( !file_exists($path) || !is_file($path) ) {
	// Datei nicht vorhanden
	header($_SERVER['SERVER_PROTOCOL'].' 404 Not Found');
	exit;
}

include_once $path;
 
Also das von http://www.Paul-Schroeder.com läuft nun dein sicheres Script bau ich nahher noch ein!

Ich habe aber noch eine weitere hp auf meinem space zu liegen die heißt http://www.Paul-Schroeder.com/VVP

das include habe ich so versucht einzubinden

Code:
error_reporting(E_ALL);
if(isset($_GET['page']))  {
$page = $_GET['page'];
include($page.'.php');
}  else  {
include(VVP/'willkommen.php');
}

Also bei der einen gehts nun im Hauptverzeichnis nur wie mache ich das nun wenn ich unterverzeichnise includiere?

Grüße
Paul
 
Sorry wenn ich den Thread jetzt mal missbrauche, aber ich benutze folgendes Script um meine Dateien zu includen

PHP:
<?php
				if(empty($_GET['seite']))
				$_GET['seite'] = "news/index";
				if(file_exists("html/".$_GET['seite'].".html")) {
				include("html/".$_GET['seite'].".html");
				} else 
				if(file_exists("php/".$_GET['seite'].".php")) {
				include("php/".$_GET['seite'].".php");
				} else {
				include("php/test.php");
				}
				?>

Meine Frage ist nun, ist das ein sicheres Script oder auch ein unsicheres ?
 
Unsicher, da du DIREKT die $_GET['site'] Variable übernimmst ohne sie zu prüfen.. am besten machst du ein include mit switch-case ( in den Tutorials ist ein Post darüber )
Oder du füllst ein Array mit allen Seiten welche included werden dürfen und schaust dann ob die übergebene Variable von $_GET['site'] in dem Array vorhanden ist...
Somit kann keiner etwas an deine Seite übergeben was du nicht kennst bzw im Array oder im switch-case vorgeben hast...

MFG
Sandro
 
Hmmmm ok man kann zwar was übergeben aber ich habe doch die abfrage drin, wenn es keine keine datei mit dem namen gibt im Verzeichniss php oder html dann soll er eine fehler seite anzeigen.

Sollte das nicht als absicherung dienen bzw reichen ? Kenne mich da nicht wirklich mit der sicherheit da aus ;)
 
Ich hab meinen Vorschlag noch einmal überarbeitet.

Allgemein ist Cross-Site Scripting ein sehr ernstzunehmendes aber leider häufig unbeachtetes Sicherheitsrisiko. Du solltest dich damit unbedingt auseinandersetzen.
 
Wenn jemand "index.php?site=../../../../../../etc/passwd" eingibt, ist er schonmal aus deinem verzeichniss "php" raus, wenn du dann dein basedir in php net richtig konfiguriert hast, hat der Angreifer damit nicht einmal ein Problem...
Wenn er nun deine Endungsabfrage mit index.php?site=../../../../../../etc/passwd");// auskommentiert, dann hat er eigentlich schon sein Ziel erreicht, dann arbeitet der Parser mit folgendem String ->
PHP:
include("php/../../../../../../etc/passwd"); //php");

Und dass heisst dann wohl dass die datei existiert und sie dann wohl oder übel includet werden kann....

MFG
Sandro
 
Zurück