andererseits heisst das auch wieder ein wenig mehr Arbeit wenn ich für jede datei einen Array eintrag mache.
das dient dann aber wiederrum zum schutz
andererseits heisst das auch wieder ein wenig mehr Arbeit wenn ich für jede datei einen Array eintrag mache.
das dient dann aber wiederrum zum schutz
ich bastel grad an einer besseren signatur ;)
ich selbst, wenn ich mit includes der mainpages arbeiten würde, würde folgendes machen:
so verbietet man den Zugriff per HTTP, weil './' die Datei im lokalen Verzeichnis erzwingt!Code:include('./'.$_GET['view'].'.php');
Generell würde ich mit sowas nicht arbeiten, denn z.B. in_array() beruht nicht auf nem binären vergleich, sodass man da auch SIcherheitslücken finden kann! Ich würde generell meine Daten auf mehrere Dateien verteilen (ist übersichtlicher) und mit ner zu includieren header und footer Dateien arbeiten, d.h. dateien die vor dem Inhalt und nach dem Inhalt eingebunden werden. So kann beispielsweise im header der aufbau einer Tabelle erfolgen, die navigation ausgegeben werden, in der eigentlichen Datei (z.B. 'news.php'), dann einfach der Inhalt ohne irgendwelche Dinge, die man beachten müsste (Tabellen aufbau, ende..), ausgegeben werden und dann einfach in der Footer.php die zeile/Spalte der Tabelle zumachen und einfach den restlichen (statischen) Inhalt der Site ausgeben.
Hallo!
Das stimmt, allerdings hat man immer noch ein Problem, wenn der Hacker auf dem selben Server einen Account hat.so verbietet man den Zugriff per HTTP, weil './' die Datei im lokalen Verzeichnis erzwingt!
in_array() vergleicht nicht binär, aber darum gings ja nicht... eine Sicherheitslücke in dieser Richtung würde mich interessieren.
Gegen die sonstigen Sachen ist nichts zu sagen, ich wollte hier aber mal den Sicherheitsaspekt rausstellen.
if ($showpage == "") {
header ("Location: http://www.deinedomain.de");
}
else {
require("/pfad/zur/kopf.php");
require("$_SERVER[DOCUMENT_ROOT]/$showpage");
require("/pfad/zur/fuss.php");
}
?>
in etwa so ?
ich bastel grad an einer besseren signatur ;)
So funktioniert es, wenn der Server richtig konfiguriert ist... in manchen Fällen ist er das nicht!
Schöner ist übrigens:
require($_SERVER['DOCUMENT_ROOT']."/$showpage");
das heisst ich hab
1.) eine Kopf.php
2.) eine Fuss.php
3.) Inhalt
4.) index.php (das script)
und in den jeweiligen Kopf => Fuss Seiten befindet sich der html kram?
naja das wird wieder arbeit
ich bastel grad an einer besseren signatur ;)
wenn ich mich nicht irre ist das dann 1 Tabelle realisiert über colspan3?
ich bastel grad an einer besseren signatur ;)
Es ist vollkommen wurscht wie du das realisierst...
In kopf.php steht dann z.B.
<html>
<head>
<title>Meine Seite</title>
</head>
<body>
und in fuß.php z.B.
</body>
</html>
Was du da sonst noch reinschreibst ist dir überlassen...
@Gaert: Dann probier das hier mal aus! wird dich vielleicht intresseren!
Aber ich denke wirklich, dass jeder mit verschiedenen, einzelnen Dateien besser beraten ist! Mir selbst persönlich gefällt es mitlerweile um einiges besser und jegliche ausnutzung von Sicherheitslücken entfallen wohl so, oder? (In Hinsicht auf die require/include-Problematik)Code:<?php if(TRUE === in_array('0410', array('41E1'))) { echo 'Bei einem in_array Vergleich ist der String "41E1" das gleiche wie der String "0410"; } ?>
Geändert von -JeDi- (04-05-2003 um 00:31 Uhr)
jetzt bringt ihr mich durcheinander.
Wo liegt das sicherheits Problem bei
dem script mit
showpage
und deinem
jedi?
ich bastel grad an einer besseren signatur ;)
Ohne Einiges zu beachten (siehe Threadanfang/-mitte) hätte man mit der Methode Sicherheitsprobleme.Original geschrieben von -Sensemann-
jetzt bringt ihr mich durcheinander.
Wo liegt das sicherheits Problem bei
dem script mit
showpage
und deinem
jedi?
eine klare anwort
<?php
if ($showpage == "") {
header ("Location: http://www.deinedomain.de");
}
else {
require("/pfad/zur/kopf.php");
require("$_SERVER[DOCUMENT_ROOT]/$showpage");
require("/pfad/zur/fuss.php");
}
?>
hab ich mit dem Script ein Sicherheits Problem? bevor ich die Seite 5-6 um ändere
wäre nett. dann kann ich nämlich beruhigt schlafen
ich bastel grad an einer besseren signatur ;)
Ja, ich hätte noch was.
Von der Verwendung her würde ich
include, anstatt require nehmen.
require bindet die externe Datei auf jeden Fall
ein und führt ihn aus. Auch wenn der Code später
gar nicht verwendet wird. D.h. require macht in einer
if-else Bedingung keinen Sinn.
Auch wenn der Code hier immer ausgeführt werden
soll. Du kannst ja auch das "else" weglassen.
Ach ja, der Einfachheit und Programmiersicherheit
halber würde ich noch das require durch ein require_once
austauschen. (oder include_once)
cu, stop.h
danke für den Hinweis
ich bastel grad an einer besseren signatur ;)
so nur leider zeigt mir QUantas nur ein Graues Script an.
Weswegen hier
<?php
if ($showpage == "") {
header ("Location: http://www.deinedomain.de");
}
else {
require("/pfad/zur/kopf.php");
require("$_SERVER[DOCUMENT_ROOT]/$showpage");
require("/pfad/zur/fuss.php");
}
?>
ein Fehler drin sein soll.
ich bastel grad an einer besseren signatur ;)
Lesezeichen