Sicherheitsfrage ($_SERVER)

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Sicherheitsfrage ($_SERVER)

    Hallo Leute,
    ich hab mir eben mal ein kleines sicherheitskonzept für mein script ausgedacht

    ich überprüfe die $_SERVER["REQUEST_URI"] variable und in einer tabelle stehen die geschützten dateien und die dafür benötigten berechtigungen ... die dann entsprechend überprüft werden ...

    meine frage an euch ist das Konzept sinnvoll? kann man irgendwie den inhalt von $_SERVER["REQUEST_URI"] manipulieren oder geht das nicht?

    besten dank
    bye micha

  • #2
    Kannst du mal genauer erklären, was du meinst?

    Kommentar


    • #3
      meine frage an euch ist das Konzept sinnvoll?
      gegenfrage - welche kennst du noch, damit wir eins aussuchen können?

      je nach dem, wie deine überprüfung aussieht, kann man durch die manipulation der query-variablen dein system durchaus umgehen.

      Kommentar


      • #4
        okay ich hab eine tabelle mit den feldern
        id, filename, permissionid

        beispiel datensatz
        1, index.php, 10

        rufe ich nun die index.php auf ... wird überprüft ob ein datensatz mit filename = basename($_SERVER["REQUEST_URI"]) und permissionid != 0 vorhanden ist

        falls ja wird geprüft ob der benutzer die berechtigung mit der id 10 besitzt

        edit:
        im query ist nur die variable filename drin ... die ja durch basename($_SERVER["REQUEST_URI"]) festgelegt ist

        edit2:
        alternativen hab ich eigentlich grad keine... ich brauche halt ein system mit dem ich mit wenig aufwand eine relativ gute sicherheit erreiche...
        ja und das erschien mir sinnvoll vorallem da ich es ja dann auch für jede einzelne action der datei ähnlich machen kann... dann braucht die überprüfung nur noch in einer globalen datei durchgeführt werden und ich brauche in den einzelnen dateien gar nichts mehr mit den berechtigungen prüfen
        Zuletzt geändert von mk85; 12.05.2005, 02:23.

        Kommentar


        • #5
          ich würd nicht den dateien die "rechte" vergeben, sondern den benutzern.
          anschließend bestimmte aktionen an bestimmte rechte knüpfen.

          so kann man z.b. ermitteln:

          - für die versuchte aktion X wird die berechtigung 3 benötigt.
          - der aktuelle benutzer hat die berechtigung 3 nicht, also
          - wird dem benutzer die aktion verwehrt.

          Kommentar


          • #6
            ja schon... aber ein entscheidender nachteil
            wenn ich die aktion X in 10 actions der datei Y ausführe
            dann muss ich die auch überall überprüfen...
            und sowas vergisst man leicht ... da ist es einfacher gleich eine ganze datei oder eben einzelne actions generell mit berechtigungen zu belegen...oder nicht

            Kommentar


            • #7
              die berechtigungen können ja trotzdem noch beim benutzer liegen
              benutzer hat das recht x und y, z hat er nicht

              er ruft eine datei mit einer bestimmten action auf ... für diese braucht er das recht y er hat es...zugriff gewährt

              er ruft die datei mit einer anderen action auf für diese braucht er das recht z da der benutzer dies nicht hat ... zugriff verwehrt

              (sorry für den doppelpost)

              Kommentar


              • #8
                rufe ich nun die index.php auf ... wird überprüft ob ein datensatz mit filename = basename($_SERVER["REQUEST_URI"]) und permissionid != 0 vorhanden ist
                Wie genau wird das denn geprüft? Durch include() einer Datei in alle zu schützenden Dateien? Das passt nicht hierzu:
                dann braucht die überprüfung nur noch in einer globalen datei durchgeführt werden und ich brauche in den einzelnen dateien gar nichts mehr mit den berechtigungen prüfen
                In einzelnen Datei nichts prüfen zu müssen geht nur, wenn dir der Webserver das abnimmt oder die Dateien nur includiert werden und selbst in einem gesicherten Verzeichnis liegen.

                Kommentar


                • #9
                  @onemorenerd
                  sry..war widersprüchlich...
                  ich binde in jeder datei für die die sicherheitsprüfung durchgeführt werden soll die "global.inc.php" mit require_once ein...
                  die "global.inc.php" liegt im gleichen verzeichnis wie der Rest von Skript allerdings wärs auch kein Problem die in Verzeichnis zu legen und ne .htaccess dazuzupacken

                  was meinst du mit "wenn dir der Webserver das abnimmt"...
                  zugangskontrolle per htaccess?

                  Kommentar


                  • #10
                    Ja ich meinte htaccess oder was auch immer ein Webserver hernehmen kann.

                    In jede Datei die global.inc.php einzubinden, darfst du dann aber auch nicht vergessen.
                    Das könnte man vielleicht mit auto_prepend absichern, habe aber noch nie damit gearbeitet, kann daher nicht viel dazu sagen.

                    Kommentar


                    • #11
                      Original geschrieben von onemorenerd
                      In jede Datei die global.inc.php einzubinden, darfst du dann aber auch nicht vergessen. [/B]
                      klar ... das werd ich schon nicht .... hoffe ich doch zumindest*g*
                      aber das brauch ich ja nur einmal pro datei... und wenn ich eben mehrere actions hab müsste ich das bei jeder action die geschützt sein soll reinmachen ... also weniger aufwand ist es schon

                      was ist auto_prepend genau?

                      Kommentar

                      Lädt...
                      X