-
Guten Morgen Gemeinde,
Ich hätte eine frage an euch. Ich steht grad etwas auf dem schlauch.
Bau ein Contentswitch zusammen das ich meine file mittels "index.php?page=links"
aufrufen kann. Nun wollte ich fragen ob er folgende Code sicher ist oder ob man damit von aussen sachen einbringen kann.
PHP-Code:<?php
$page = $_GET['page'];
if ( $page == "" ) $page = "/include/index";
if ( is_readable ( $page.".php" ) ) include $page.".php";
else include "include/index.php";
?>
-
Moin,
das ist nicht wirklich sicher, da jede beliebige lesbare Datei mit der Endung PHP angefordert werden kann(was höchstwahrscheinlich nicht gewollt ist)
-
du könntest das von meinem Vorposter beschriebene Problem lösen, indem du ein Array erstellst, welches dir Dateien vorgibt, die erlaubt sind.
und bei jedem aufruf überprüfst du, ob die aufgerufene seite in $allowed ist und fertig ist der Keks. Darüber kannst du dir dann eine Weiterleitung erstellen, wenn eine nicht legitime Seite augerufen wird.PHP-Code:$allowed=array('start', 'links', 'seite1', 'seite2');
"Die Frage, ob Computer denken können, ist wie die Frage, ob Unterseeboote schwimmen können." -Edsger Wybe Dijkstra
Programmiersprachen: PHP | JAVA | JavaScript | VB.Net
-
Das mit dem array hab ich mir auch schon übnerlegt. aber dann müsste ich jede seite anlegen und das will ich nicht.
aber ich habs eben probiert. man kann nichts einfügen ..
http://cms.mjrenner.de/index.php?pag...chnee.de/index
http://cms.mjrenner.de/index.php?pag...e.de/index.php
Komm immer die index.php die ich angegeben habe wenn ne datei nich lesbar ist ..
dann ist es doch ok oder?!
-
Es geht nicht um fremde Dateien von entfernten Servern, es geht um Dateien von deinem Server. Man kann durchaus Pfade erraten, Google oder Postings von dir hier im Forum, in denen du Pfade preisgegeben hast, leisten Hilfestellung.
(is_readable() funktioniert eh nicht mit entfernten Dateien )
Ich hab mal einfach probiert.
Auf der Startseite verweist ein Formular auf http://cms.mjrenner.de/index.php?pag...function/login
Ich habs mit logout probiert, und bekomme die Meldung, dass ich erfolgreich ausgeloggt wurde(obwohl nicht eingeloggt)
Die Frage die du dir also stellen musst ist:
Bin ich sicher, dass sich auf meinem Server keine einzige Datei befindet und in Zukunft befinden wird, die einen Schaden anrichten könnte, wenn ihr Pfad erraten und sie durch dein CMS eingebunden wird.
Kannst du diese Frage definitiv mit JA beantworten?
-
Kann ich bestimmt nicht solange ich nicht alle durchsucht habe. die frage ist wie mach ich es sonst außer jeder seite anlegen? andere cms seiten haben ja auch irgendwie ne lösung damit sie nicht jede seite einzeln einbinden müssen ..
-
Für mich habe ich die Sache direkt über eine Datenbank als Zwischenstelle gelöst. Hier sind alle Seiten mit Titel und sonstigen Header angaben angegeben.
Zusätlzlich habe ich hier eine Angabe, welcher Content angezeigt werden soll.
Dabei habe ich dann auch ein schönes Berechtigungssystem, wer was sehen darf.
Wenn du dir Typo3 mal als CMS ansiehst, wirst du feststellen, dass hier nur noch mit Datenbanken gearbeitet wird, um den Inhalt auszugeben.
Ich denke nicht, dass du komplett darum herum kommen kannst, irgendwas per Hand anzugeben. Wenn nicht im Quellcode, dann wenigstens in der Datenbank."Die Frage, ob Computer denken können, ist wie die Frage, ob Unterseeboote schwimmen können." -Edsger Wybe Dijkstra
Programmiersprachen: PHP | JAVA | JavaScript | VB.Net
-
Ok mit Datenbank arbeiten hört sich auch ganz schick an. meisnt du könntes mir nen schupps in die richtung geben wie du das machst?
-
-
-
Das ist ja doch alles ziemlich komplex.. wollte nämlich endlich mal ne gescheide und vorallem sichere art wie ich Homepages bauen kann und mein content sicher einfügen kann
-
im Grunde wäre das auch nichts anderes als das über CASE zu definieren. Nur, dass du dir hier alles variabler verwalten kannst.
Du legst quasi eine Tabelle an, in der du deine Seiten auflistest. Nennen wir sie mal cms_page. Jetzt kannst du dir überlegen, ob du dann eine weitere Tabelle mit Inhaltselementen anlegst, oder die Anweisung(en) für die Inhaltsdarstellung direkt in ein Feld von cms_page schreibst.
Dann schreibst du zum Beispiel in dein Inhalt-Feld:
und kannst darüber alles bearbeiten. Natürlich musst du diesen Text dann mit eval() ausführen lassen, damit das funktioniert.PHP-Code:include('includes/meinedatei.php);'
"Die Frage, ob Computer denken können, ist wie die Frage, ob Unterseeboote schwimmen können." -Edsger Wybe Dijkstra
Programmiersprachen: PHP | JAVA | JavaScript | VB.Net
-
Hi,
ganz so unsicher ist das oben genannte Script doch garnicht. Man müsste jetzt nurnoch Abfragen einbauen, ob / oder .. oder ähnliches vorhanden ist -> Wenn nicht: include();
Gruß, DomiWer, wenn nicht ich? Wann, wenn nicht jetzt?
-
Servus,
jo gut aber das hab ich doch getan mit:Wenn dateilesbar und vorhnaden include die $page.php ansonstnge die include/index.php ..PHP-Code:if ( is_readable ( $page.".php" ) ) include $page.".php";
else include "include/index.php";
oder seh ich das falsch?
-
Wieviele *.php-Dateien hast du denn auf deinem Server, welche lt. Dateiberechtigung nicht lesbar sind?
Ähnliche Themen
-
Ist das sicher?
Von Malaxo im Forum PHPAntworten: 2Letzter Beitrag: 09.10.08, 09:19 -
Ist das sicher?
Von slaughter89 im Forum PHPAntworten: 11Letzter Beitrag: 03.01.08, 17:13 -
Ist das sicher?
Von Lektor21 im Forum PHPAntworten: 13Letzter Beitrag: 26.09.07, 03:10 -
Wie Sicher?
Von Bubble10 im Forum Buchführung, Recht, Steuer & Co.Antworten: 3Letzter Beitrag: 17.06.07, 00:38 -
Wie sicher ist MD5?
Von preko im Forum PHPAntworten: 11Letzter Beitrag: 26.10.04, 20:16



1Danke

Zitieren

Login






[PHP][Snippet] Array zu XML konvertieren