[PHP5] Sicherheitskonzept

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

  • [PHP5] Sicherheitskonzept

    Hallo Leute,

    ich brauche mal eure Meinung zu meinem Vorhaben.
    Was haltet ihr davon, saemtlichen PHP-Code in eine Datenbank zu speichern? Im Prinzip moechte ich dann nur noch eine einzige php-Datei haben (index.php) mit einem Parameter (id) auf die id in der Datenbank zugreift.

    Was ich mir davon erhoffe. Es kann keine PHP-Datei mehr ausgefuehrt werden, wenn diese nicht in der Datenbank steht.
    Ich habe die Moeglichkeit Makros (fuer die Bilderanzeige bspw.) zu schreiben und ich habe die Moeglichkeit den Inhalt nochmal zu pruefen (falls doch schadhafter Code in der Datenbank steht)

    Macht so ein "System" sinn?!

    Vielen Dank fuer eure Meinung(en)!
    Niveau sieht nur von unten aus wie Arroganz!

  • #2
    Es kann keine PHP-Datei mehr ausgefuehrt werden, wenn diese nicht in der Datenbank steht.
    Es kann doch aber auch keine PHP Datei ausgeführt werden, die nicht auf dem Server liegt ? Also wo ist hier der Sicherheitsvorteil ??
    Und wenn du den Code in der DB hast schützt das dich auch nicht vor schlampig programmierten Codeteilen, die z.B. einfach einen include() eines GET/POST Parameters machen, um eine Datei einzubinden.
    Ausserdem denke ich dass es aus Performance Sicht nicht allzu gut sein könnte, weil das lokale Filesystem sicherlich wesentlich schneller ist, als eine komplexe Anfrage an die DB.

    Just my 5 cents

    Gruss

    tobi
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      halte ich für totalen humbug. da wird der wartungsaufwand ins unermessliche steigen.
      Was ich mir davon erhoffe. Es kann keine PHP-Datei mehr ausgefuehrt werden, wenn diese nicht in der Datenbank steht.
      das kann man auch anders lösen.

      peter
      Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
      Meine Seite

      Kommentar


      • #4
        jahlives,

        gut, das include kann man ja rausfischen!
        Klar, es kann keine PHP-Datei ausgefuehrt werden, die nicht auf dem Server liegt. Aber das Problem ist, hier im Firmennetzwerk (fast) jeder Dateien auf den Server schieben und diese dann im Browser aufrufen.
        Das wuerde ja dann nicht mehr gehen, weil die keinen Zugang zur DB bekommen ;-)

        Kropff, wie waere dein Ansatz dafuer?
        Niveau sieht nur von unten aus wie Arroganz!

        Kommentar


        • #5
          Ordentliche Schreibrechte setzen.
          Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
          var_dump(), print_r(), debug_backtrace und echo.
          Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
          Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
          Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

          Kommentar


          • #6
            Original geschrieben von Peter_Panther
            Aber das Problem ist, hier im Firmennetzwerk (fast) jeder Dateien auf den Server schieben und diese dann im Browser aufrufen.
            Das wuerde ja dann nicht mehr gehen, weil die keinen Zugang zur DB bekommen ;-)
            Und? Nur weil sie keinen Zugriff auf die DB haben können sie doch immer noch Skripte rauf schreiben... die Idee ist doof, sry, aber ist so ~.~

            Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

            bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
            Wie man Fragen richtig stellt

            Kommentar


            • #7
              Sorry, aber ich finds irgendwie geil ~.~

              Aber sooo scheisse ist die Idee doch auch nicht?!
              Gerade im Zusammenhang mit den eigenen Makros macht mich die Idee irgendwie noch mehr an. Klar, man kann sowas immer anders loesen.

              Nunja, fuer den oeffentlichen Auftritt wuerde ich dann eben nur alles was aus der DB kommt erlauben...
              Ausserdem verspreche ich mir mit meinen vielen restriktionen die user nen wenig zu erziehen ;-)
              Niveau sieht nur von unten aus wie Arroganz!

              Kommentar


              • #8
                Original geschrieben von Peter_Panther
                Aber das Problem ist, hier im Firmennetzwerk (fast) jeder Dateien auf den Server schieben und diese dann im Browser aufrufen.
                Das wuerde ja dann nicht mehr gehen, weil die keinen Zugang zur DB bekommen ;-)
                Aber Zugriff auf die index.php, in der du die Verbindung zur DB aufbaust => Zugangsdaten zur DB => Zugriff auf die DB.

                Außerdem können eigene Skript ja auch direkt aufgerufen werden (http://example.com/eigenes_skript.php)

                Dir helfen dafür wirklich nur sauber definierte Schreib- und Leseberechtigungen, alles andere ist Gefrickel in Potenz
                Ich denke, also bin ich. - Einige sind trotzdem...

                Kommentar


                • #9
                  Also wenn dir mittlerweile 4 Leute mit Sternchen durch die Blume mitgeteilt haben, dass die Idee doof ist ... ich glaube dann ist sie auch wirklich doof ^^,

                  Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                  bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                  Wie man Fragen richtig stellt

                  Kommentar


                  • #10
                    @topicstarter
                    Wenn du den Zugriff auf den DocRoot vom BS her nur auf den Serverprozess/User beschränkst, wer kann dir dann noch Daten reinschieben ? Klar wenn der DocRoot im LAN freigegeben ist, aber mal ehrlich dann haste noch ganz andere Probleme. Ich könnte ja zum Beispiel über die Freigabe einfach mal den Quelltext deines Schutzscriptes anschauen, das PW und Username für deine DB nehmen und den DB Server einstampfen oder entsprechenden PHP Code eintragen
                    Setz die entsprechenden Berechtigungen für den DocRoot im Filesystem des Servers und du hast keine solchen Probleme mehr...

                    //edit grad gelesen, dass happy etwa das gleiche meinte, sorry

                    Gruss

                    tobi
                    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                    Kommentar

                    Lädt...
                    X