tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
Like Tree1Danke
ERLEDIGT
NEIN
ANTWORTEN
15
ZUGRIFFE
380
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    MJRENNER MJRENNER ist offline Mitglied
    Registriert seit
    Sep 2008
    Beiträge
    20
    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";
    ?>
     

  2. #2
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    Moin,

    das ist nicht wirklich sicher, da jede beliebige lesbare Datei mit der Endung PHP angefordert werden kann(was höchstwahrscheinlich nicht gewollt ist)
     

  3. #3
    Avatar von arkanoid
    arkanoid arkanoid ist offline Mitglied Silber
    Registriert seit
    Jun 2004
    Beiträge
    70
    du könntest das von meinem Vorposter beschriebene Problem lösen, indem du ein Array erstellst, welches dir Dateien vorgibt, die erlaubt sind.
    PHP-Code:
    $allowed=array('start''links''seite1''seite2'); 
    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.
     
    "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

  4. #4
    MJRENNER MJRENNER ist offline Mitglied
    Registriert seit
    Sep 2008
    Beiträge
    20
    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?!
     

  5. #5
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    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?
     

  6. #6
    MJRENNER MJRENNER ist offline Mitglied
    Registriert seit
    Sep 2008
    Beiträge
    20
    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 ..
     

  7. #7
    Avatar von arkanoid
    arkanoid arkanoid ist offline Mitglied Silber
    Registriert seit
    Jun 2004
    Beiträge
    70
    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

  8. #8
    MJRENNER MJRENNER ist offline Mitglied
    Registriert seit
    Sep 2008
    Beiträge
    20
    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?
     

  9. #9
    MJRENNER MJRENNER ist offline Mitglied
    Registriert seit
    Sep 2008
    Beiträge
    20
    Zitat Zitat von Sven Mintel Beitrag anzeigen
    ......
    Ich hab mal einfach probiert.
    Auf der Startseite verweist ein Formular auf http://cms.mjrenner.de/index.php?pag...function/login.....
    Ja aber wenn ich doch die logout.php mit fem case definiere kann man doch trtz noch aufrufen wenn man den link ratet?!
     

  10. #10
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    Zitat Zitat von MJRENNER Beitrag anzeigen
    Ja aber wenn ich doch die logout.php mit fem case definiere kann man doch trtz noch aufrufen wenn man den link ratet?!
    Wenn du alle Dateien, die includet werden sollen, in einem speziellen zugriffsgeschützten Verzeichnis ablegst, kann man nicht darauf zugreifen.
     

  11. #11
    MJRENNER MJRENNER ist offline Mitglied
    Registriert seit
    Sep 2008
    Beiträge
    20
    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
     

  12. #12
    Avatar von arkanoid
    arkanoid arkanoid ist offline Mitglied Silber
    Registriert seit
    Jun 2004
    Beiträge
    70
    Zitat Zitat von MJRENNER Beitrag anzeigen
    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?
    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:
    PHP-Code:
    include('includes/meinedatei.php);' 
    und kannst darüber alles bearbeiten. Natürlich musst du diesen Text dann mit eval() ausführen lassen, damit das funktioniert.
     
    "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

  13. #13
    Avatar von Do_0mi
    Do_0mi Do_0mi ist offline Mitglied Silber
    Registriert seit
    May 2008
    Beiträge
    62
    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ß, Domi
     
    Wer, wenn nicht ich? Wann, wenn nicht jetzt?

  14. #14
    MJRENNER MJRENNER ist offline Mitglied
    Registriert seit
    Sep 2008
    Beiträge
    20
    Servus,

    jo gut aber das hab ich doch getan mit:
    PHP-Code:
    if ( is_readable $page.".php" ) ) include  $page.".php";
    else include 
    "include/index.php"
    Wenn dateilesbar und vorhnaden include die $page.php ansonstnge die include/index.php ..
    oder seh ich das falsch?
     

  15. #15
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    Wieviele *.php-Dateien hast du denn auf deinem Server, welche lt. Dateiberechtigung nicht lesbar sind?
     

Ähnliche Themen

  1. Ist das sicher?
    Von Malaxo im Forum PHP
    Antworten: 2
    Letzter Beitrag: 09.10.08, 09:19
  2. Ist das sicher?
    Von slaughter89 im Forum PHP
    Antworten: 11
    Letzter Beitrag: 03.01.08, 17:13
  3. Ist das sicher?
    Von Lektor21 im Forum PHP
    Antworten: 13
    Letzter Beitrag: 26.09.07, 03:10
  4. Wie Sicher?
    Von Bubble10 im Forum Buchführung, Recht, Steuer & Co.
    Antworten: 3
    Letzter Beitrag: 17.06.07, 00:38
  5. Wie sicher ist MD5?
    Von preko im Forum PHP
    Antworten: 11
    Letzter Beitrag: 26.10.04, 20:16