REQUEST_URI sicher oder leicht manipulierbar ?

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • REQUEST_URI sicher oder leicht manipulierbar ?

    Servus ihr

    ich hab da mal eine kleine und sicher leicht zu beantwortende Frage:
    in meinem kleinen local web project nutze ich für meinen url-dispatcher die variable
    $_SERVER['REQUEST_URI'] um das entsprechende controller-file zu ermitteln.
    lässt sich im www die request_uri so manipulieren, dass dabei eine code-injection oder ähnliches böses möglich ist ?
    oder andersum gefragt sollte ich die request_uri auf solche schadhaften teile untersuchen (z.b. über regex) ?

    lg
    das entchen
    - ich weis, dass php 4 veraltet ist und ich lieber php 5 nutzen sollte
    - ich mache das ganze nicht nur um mein projekt zu erstellen, sondern um das ganze auch zu verstehen
    - wenn das ganze in php 4 funktioniert will ich es sauber nach php 5 migrieren
    - kurz gesagt ich WILL LERNEN VERSTEHEN und restlos BEGREIFEN wie das was ich möchte in php 4 / 5 / 6 umgesetzt werden soll
  • Hi,

    Ich würde einfach die URL splitten und dann den einzelnen Teilen nachgehen.
    Solange du die URI nicht in irgendein eval() packst, oder direkt als Datei includest (include $part_of_uri.'.php') sollte es meiner Meinung nach einigermassen sicher sein.
    Ob in der URI Schadcode ist oder nicht sollte ja eigentlich nichts machen, wenn du die nach URI anzusprechenden Dateien/Klassen erst auf vorhandensein prüfst.
    Wieder so ein Thema auf welches ich eigentlich eine Antwort wüsste, sie aber so komisch formuliere dass man es nur falsch verstehen kann o.O.
    Also warte lieber noch eine 2. Meinung ab :)
  • derzeit nutze ich den request_uri nur so :

    für evtl spracherkennung
    domain.ext/de/news/
    domain.ext.en/news/

    Quellcode

    1. das ganze dann über explode
    2. $uri_segments = explode('/', substr($_SERVER['REQUEST_URI'], 1));

    und zur ermittlung des controllers der dann in dem obigen fall
    news.controller.php wäre (aber auch nur wenn es den controller gibt sonst home.controller.php als default)
    in beiden fällen brauche ich normalerweise keine DB abfrage (sql injection sollte also eh net gehen).
    meine frage zielte auch eher in die richtung ob man in der request_uri böses eval-script oder ähnliches "verstecken" kann (so wegen der "$( Zeichen)

    aber danke trotzdem erstmal für die info :D
    - ich weis, dass php 4 veraltet ist und ich lieber php 5 nutzen sollte
    - ich mache das ganze nicht nur um mein projekt zu erstellen, sondern um das ganze auch zu verstehen
    - wenn das ganze in php 4 funktioniert will ich es sauber nach php 5 migrieren
    - kurz gesagt ich WILL LERNEN VERSTEHEN und restlos BEGREIFEN wie das was ich möchte in php 4 / 5 / 6 umgesetzt werden soll