Passwort in PHP abspeichern



  • Hi,

    ich muss in meinem PHP Script Bilder von der lokalen HD auf den Server hochladen. Das habe ich mit den ftp_... Funktionen von PHP gemacht.

    Was mir noch nicht gefällt ist, dass in der php Datei der Zugangsname und das Passwort für den FTP stehen, unverschlüsselt.
    Ist das ein Problem?
    Kann man sich diese php-Dateien überhaupt runterladen, ohne dass sie vom Interpreter verarbeitet werden d.h. die Zugangsdaten nichtmehr sichtbar sind?

    Wenn es unsicher ist:
    Wie könnte ich das ganze verschlüsseln? Ich hab es schon mit md5() versucht, aber das geht ja nur in eine Richtung, entschlüsseln kann man damit nicht.(oder?)



  • Hi.

    Solange das Verzeichnis mit dem entsprechenden Script vom Inet aus nur via HTTP oeffentlich erreichbar ist und es keine Moeglichkeit gibt, Dateien in Verzeichnisse hochzuladen, auf die auch via HTTP zugegriffen werden kann, sollte es keine moeglichkeit geben, das PHP-Script ungeparst herunterzuladen.



  • Nobuo T schrieb:

    und es keine Moeglichkeit gibt, Dateien in Verzeichnisse hochzuladen, auf die auch via HTTP zugegriffen werden kann

    Wie meinst Du das?
    Also man kann Bilder hochladen, und diese werden dann auf einer Seite angezeigt. Kann das eine Sicherheitslücke sein?

    Der Ftp Zugang der in der PHP Datei steht ist der auf dem das Script auch selbst liegt. Also müsste man dann schon das Passwort kennen um das Passwort zu erfahren. Oh, jetzt hat es einen Stapelüberlauf in meinem Hirn gegeben 😉



  • 1.) Wozu brauchst du da die FTP-Funktionen, wenn du doch schon auf dem entsprechenden Server bist 😕
    2.) Falls die hochgeladenen Bilder direkt übernimmst gibt es ja auch die Möglichkeit über den Upload ein PHP-Script einzuschleusen 🙄



  • zu 1)
    die Bilder müssen ja erst hochgeladen werden (das soll über eine Seite ablaufen, kein fpt-Programm). Gibt es da noch eine andere Möglichkeit als mit ftp?

    Das Hochladen ist nicht öffentlich, das kann nur einer. Und ich bzweifel dass der PHP kann oder überhaupt weiß was das ist 🙂



  • Ich verstehe jetzt nicht so ganz, von wo aus du was für Files wohin hochlädtst bzw. wo da FTP zum einsatz kommt 😕



  • Also es ist so:

    Ich habe eine Nachrichtenseite gemacht, die der Kunde selbst aktualisieren kann. Eine Nachricht besteht aus einem Text und optional einem Bild.
    Der Einfachheit halber soll das ganze über ein Formular auf einer html bzw Php Seite ablaufen. Dort kann man den Text eintragen und ein Bild (Datei) von der Festplatte auswählen. Und eben dieses Bild muss nun auf den Server drauf, und dafür habe ich die ftp Funktionen von php benutzt. Und für den ftp Zugriff braucht man Benutzername und Passwort, beides habe ich einfach in die PHP-Datei reingeschrieben.

    Wenn ich Nabuo T richtig verstanden habe dann kann niemand diese PHP Dateien aufmachen und reinschauen, womit mein Problem auch schon gelöst wäre. Es ging mir nur um die Sicherheit.

    Könnte man Dateien auch auf anderem Weg auf den Server laden, ohne ftp? Hab leider so gut wie keine Ahnung von php 🙄



  • ähm irgendwie verstehe ich das nicht so ganz 🙄
    PHP läuft ja auf dem Server - wie willst du dann per FTP mit PHP Dateien vom Client auf den Server übertragen 😕
    Normalerweise werden Dateien in diesem Fall per POST an den Server geschickt. FTP bräuchtest du nur dann, wenn du die Dateien anschließen noch auf einen anderen Server (als den auf dem dein Script läuft) verschieben willst 😉



  • Hm jetzt wo Du das so sagst versteh ich es auch nichtmehr 😉
    Auf jeden Fall gibt es die Funktion ftp_put(), und wenn man der eine lokale Datei übergibt funktioniert es einwandfrei. Und ich geb mich jetzt auch zufrieden mit der Lösung. Sollte es nicht sicher sein werde ich es schon sehen.
    Aber wer versucht schon so eine kleine Popelseite zu hacken? Eben, niemand.



  • Wart's ab. Hehe... *evilgrin* :p



  • Zeig mal den Code, wie du es schaffst aus einen PHP-Script mittels FTP Dateien vom Client auf den Server zu übertragen - interessiert mich wirklich 🤡



  • Also gut:

    $conn = ftp_connect( "www.die-adresse-wo-auch-das-script-liegen-tut.de" );
    ftp_login( $conn, "utzername", "********" );
    ftp_chdir( $conn, "verzeichnis/" );
    ftp_put( $conn, $ziel, $quelle, FTP_BINARY );
    ftp_quit( $conn );
    

    Mehr ist es leider nicht 🙂



  • Ich vermute irgendwie, dass du mit den ftp-Funktionen die Files nur noch anschließend auf dem Server verschiebst, oder? 🙄



  • Es gibt doch via HTML die Möglichkeit Files hochzuladen. Diese werden dann im Temporären Verzeichniss auf dem Server abgelegt. Du kannst die Daten vom File an ein PHP-Skript übergeben und dort damit allen möglichen quatsch machen.
    Da brauchst du dann nichts mit irgendwelchen Passwörtern und Benutzernamen.
    Mach aber am besten ins PHP-Skript ne Funktion die prüft ob auch wirklich ein Bild hochgeladen wurde. Es gibt immer wieder Leute die dann andere Skripte hochladen um Daten aus zu spionieren.
    Ich würd die empfeheln vor dem Upload eine unabhängige Passwortabfrage zu machen, damit nicht jeder Uploaden kann.

    EDIT : An sonsten kann ich die nur raten die Benutzerdaten (Paswort, Benutzername) in einer extra Datei ausserhalb des Verzeichnisses abzulegen und diese Datei dann in deinem PHP-Skript aufzurufen. So erfährt niemand dein Passwort, auch wenn das Skript mal ungeparst zum Browser gelangen sollte.



  • Das mit dem Passwort und der Extradatei hab ich schon gemacht (dank dem Forum hier).
    Ich verfrachte jetzt noch das FTP Zugangs-Zeugs in diese Passwort Datei und das solls dann gewesen sein, hab keine Lust mehr :p

    @flenders: ka was Du meinst, ich verweise auf den Code von oben, mehr hab ich auch nicht gemacht.



  • und was ist $quelle? 🙄



  • Wieso ftp? Ich versteh nich so ganz warum do so darauf beharrst. Wenn ich dich richtig verstanden habe, dann sollen doch nur Bilddateien hochgeladen werden. Das muss doch nicht zwingend mit ftp-Funktionen gemacht werden. Ich find das keine elegante Lösung.



  • @flenders: Eine lokale Datei, zB C:\Bild.jpg

    @MORL: OK, und wie macht man sowas ohne Ftp? Ich habe ein Formular, in dem gibt es so ein Edit Feld mit "FILE" Eigenschaft, d.h. es ist ein Editfeld mit "Durchsuchen" Button daneben.
    Wenn man auf "Absenden" klickt wird ein PHP-Script ausgeführt in dem dann über FTP die gewählte Datei hochgeladen wird.

    Was muss ich da jetzt verändern, welche Funktionen benutzen? Ich hab keine Idee und Google hilft mir auch nicht.


  • Mod

    mal ne blöde Frage: wie macht man sowas mit ftp??
    $quelle muss doch schon die raufgeladene datei sein...

    Wie man es ohne FTP macht, findet man doch überall erklärt. zB in der gut versteckten PHP Docu



  • Das macht der Browser schon,der überträgt die Datei zu deiner Seite,wenn du ein Eingabefeld von Typ File verwendest.Deine Seite muss dann die übertragene Datei prüfen und bei dir abspeichern.


Anmelden zum Antworten