Sicherheit (File- und Dirfunktionen)

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

  • Sicherheit (File- und Dirfunktionen)

    Ich hab meinen eigenen PHP-Server und möchte meinen Freunden webspace bereit stellen. Es gibt nur so wunderschöne scripts, mit denen man auf die gesamte festplatte zugriff hat. Ich weiß zwar, dass man das Problem nicht wirklich lösen kann (wenn doch sagt es bitte), frage mich aber ob nicht folgendes möglich ist:

    Alle File- und Dirfunktionen können nur auf Verzeichnisse unterhalb des Verzeichnisses zugreifen, indem sich das Script befindet. Oder das der Apache zumindest alle Zugriffe überhalb des htdocs-Orders sperrt.

    Thx schonmal

    PS: Folgende Software benutze ich als Server, bin auch bereit allesmögliche zu ändern bzw. zu installieren:

    apache_1.3.27, php-4.3.1 und mysql-4.0.12

  • #2
    installationsfragen.....

    *VERSCHIEB*


    --

    der user (freund) bekommt ja bestimmt einen ftp account von dir. und sein webpath hat diese rechte. zwar läuft der apache als apache und kann in der tat nicht auf die höheren verzeichnisse zugreifen, aber die frage ist, ob er in verzeichnisse von dir kommt.

    teste das mal mit dem ftp-user. dadurch das ein verzeichnis und unterverzeichnisse diesem (neuen) user gehören, könnte es klappen. ansonsten wüsste ich jetzt auch keine lösung...
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      bezüglich den schönen scripts zum auslesen in php
      SAFE MODE aktivieren ! (das ist schon die halbe serversicherheit)

      cu,
      HANSI

      Kommentar


      • #4
        Erstmal danke für eure hilfe.

        @ Abraxax
        Das Problem ist nicht, dass der user auf files per ftp oder sont was zugreifen kann, sondern das er php scripts hochladen kann (und das soll er ja auch können); leider auch solche, die den zugriff auf die gesamte festplatte (angeblich auch netzwerk) ermöglichen.

        @ hansi
        wie geht das mit dem safe mode und was bringt das?

        Kommentar


        • #5
          Original geschrieben von davidn
          @ Abraxax
          Das Problem ist nicht, dass der user auf files per ftp oder sont was zugreifen kann, sondern das er php scripts hochladen kann (und das soll er ja auch können); leider auch solche, die den zugriff auf die gesamte festplatte (angeblich auch netzwerk) ermöglichen.
          schon klar. ich habe das auch verstanden.

          meine idee war nur, wenn die rechte der verzeichnisse unterschiedlich sind, was ja bei unterschiedlichen ftp-usern logischerweise der fall wäre ...... usw. das war eben meine idee.

          das SAFEMODE ist bestimmt nciht verkehrt. schaue mal in der php.ini nach.
          INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


          Kommentar


          • #6
            ok, glaub ich hatte dich falsch verstanden. Ich versteh nur nicht, was die ftp rechte mit den zugriffsrechten von php zutun haben.

            Im safemode geht es trotzdem noch, vollzugriff auf die gesamte platte *grrrrrr*

            Was macht der safe mode denn?

            Nochmal zum problem, Funktionen wie opendir, readdir etc dürfen halt nicht unterhalb von htdocs angewendet werden Kann man sowas niergendwo einstellen?

            Kommentar


            • #7
              Was macht der safe mode denn?
              es soll den zugriff auf dateien mit unterschiedlichen rechten (userid) unterbinden.
              Ich versteh nur nicht, was die ftp rechte
              genau das . siehe oben.
              unterschiedliche rechte. -> kein zugriff.

              du solltest mal die rechte der dateien abchecken. möglicherweise ist hier noch eine problemlösung zu finden.
              INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


              Kommentar


              • #8
                Ich versteh das mit den rechten nicht, sorry. Aber bei meinem server gibt es ftpzugang mit entsprechenden rechten, auf dem apache aber nicht. Kann man das irgendwie einrichten?

                Kommentar


                • #9
                  Zusätzlich solltest du für jeden virtuellen Server die Variable open_basedir auf den docroot des jeweiligen Accounts legen.
                  damit ist schonmal sichergestellt, dass php nur auf dateien zugreifen können, die unterhalb von "open_basedir" liegen.

                  Wenn du "open_basedir" auf /dein/webroot/htdocs/account1 einstellst, könnnen PHP Scripte nur auf Dateien unterhalb dieses Verzeichnisses zugreifen, nicht aber z.B. auf /etc...


                  PS: MySQL 4.0.12 solltest du nicht installieren, wenn du es zusammen mit PHP einsetzen möchtest. Davon rate ich dringendst ab.
                  Zuletzt geändert von Troublegum; 26.04.2003, 13:38.
                  [color="#334D7B"]"Los, lass uns loslegen! Hm ? Quatschen können wir hinterher immer noch!"[/color]
                  [color="#9C5245"]"Aber Bommel, wir können jetzt nicht bumsen. Wir müssen doch erst den Kindern - ... "[/color]
                  [color="#334D7B"]"Ja ja ja. Du willst immer nur das Eine. Buchstabenzeigen, Buchstabenzeigen - meine Gefühle sind dir wohl scheißegal."[/color]

                  © Harald Schmidt

                  Kommentar


                  • #10
                    ok, das hört sich gut an. Ich weiß leider nicht, wie ich open_basedir für benutzer ändere. Ich hab das in der php.ini gefunden und auf das htdocs verzeichnis geändert. Das ist schonmal was.
                    Ehrlich gesagt verstehe ich das mit den beutzern nicht. Kann man in dem Apache bzw. in PHP benutzer einrichten? Ich hab keine wirklichen benutzer, sondern nur einen ftp server, bei dem ich benutzer anlege, die dann auf ein bestimmtes verzeichnis des servers zugreifen können. Hab übrigens win2k auf dem server.

                    Thx Greetz David

                    Kommentar


                    • #11
                      Wenn du Windows benutzt, nützt dir glaube ich der Safe Mode rein gar nichts (ausser dass man Funktionen deaktivieren kann). Ich glaube der Safe Mode setzt auf das Benutzersystem von Unix.. bin aber nicht sicher. Vielleicht klappt es ja, wenn man im Explorer unter Eigenschaften einer Datei die Sicherheitseinstellungen setzt.

                      Du richtest ja für jeden Account einen virtuellen Host im Apache ein, oder?
                      Ja klar tust du das
                      Also du kannst dann in der httpd.conf das open_basedir für jeden virtuellen Host einzeln einstellen:
                      Code:
                      <VirtualHost XXXX>
                       php_admin_value open_basedir c:/doc_root/dieses/virtualhosts
                      </VirtualHost>
                      Du solltest den Safe Mode trotzdem aktivieren und in der php.ini mit der variable disable_functions folgende Funktionen deaktivieren:
                      exec,system,passthru,shell_exec

                      Also "disable_functions = exec,system,passthru,shell_exec".
                      [color="#334D7B"]"Los, lass uns loslegen! Hm ? Quatschen können wir hinterher immer noch!"[/color]
                      [color="#9C5245"]"Aber Bommel, wir können jetzt nicht bumsen. Wir müssen doch erst den Kindern - ... "[/color]
                      [color="#334D7B"]"Ja ja ja. Du willst immer nur das Eine. Buchstabenzeigen, Buchstabenzeigen - meine Gefühle sind dir wohl scheißegal."[/color]

                      © Harald Schmidt

                      Kommentar


                      • #12
                        hallo win2k als serverbetriebssystem ?? wie wäre es mit linux ? du kannst doch kein windows als server nehmen.

                        @ Troublegum:

                        exec,system,passthru,shell_exec, etc. wird unter windows eh' nicht untersützt.

                        cu,
                        HANSI


                        EDIT:
                        @ davidn:

                        weleche ftp software verwendest du ?

                        Kommentar


                        • #13
                          Original geschrieben von hansi
                          @ Troublegum:
                          exec,system,passthru,shell_exec, etc. wird unter windows eh' nicht untersützt.

                          Wie kommst du denn da drauf ?
                          Du kannst unter Windows Programme genauso per exec() etc. aufrufen wie unter Linux..
                          Was unter Linux die Shell ist ist unter Windows die Eingabeaufforderung.

                          PS: Windows2000 ist nicht schlecht.. Und wenns nur ein Webspace für Freunde sein soll ist es doch okay.
                          Zuletzt geändert von Troublegum; 26.04.2003, 22:41.
                          [color="#334D7B"]"Los, lass uns loslegen! Hm ? Quatschen können wir hinterher immer noch!"[/color]
                          [color="#9C5245"]"Aber Bommel, wir können jetzt nicht bumsen. Wir müssen doch erst den Kindern - ... "[/color]
                          [color="#334D7B"]"Ja ja ja. Du willst immer nur das Eine. Buchstabenzeigen, Buchstabenzeigen - meine Gefühle sind dir wohl scheißegal."[/color]

                          © Harald Schmidt

                          Kommentar


                          • #14
                            Sorry Jungs, ich bin echt noch total der newbe. Bin schon stolz, dass alles unter win2k geklappt hat.

                            Also Ich habe keine wirklichen virtuellen Hosts , nur unterverzeichnisse im htdocs ordner, die ich per ftp freigeben (hab halt auch ein browserscript geschrieben).

                            Das mit dem open_basedir = C:\server\Apache\htdocs in der php.ini hat gut funktioniert. Wenigstens ist der Zugriff jetzt auf den htdocs ordner beschränkt. Es wär natürlich gut, wenn ich das für jeden user machen könnte.

                            Wär nett, wie ihr mir erklärt, wie ich virtuellen Hosts für benutzer einrichte. Thx

                            PS: Ich verwende GuildFTP als Server

                            Kommentar


                            • #15
                              Hi Jungs, wär nicht einer so nett mir das zu erklären oder wenigstens zu sagen, wie ich das überhaupt angehe, bin echt absoluter newbe.

                              Kommentar

                              Lädt...
                              X