Video: Week 6 2025
Det er ret almindeligt, at webapplikationer giver brugere mulighed for at uploade filer af en eller anden grund. Du skal sikre, at uploads er sikre. For eksempel giver nogle opslagstavler brugere mulighed for at uploade små billeder eller avatarer, der vises ved siden af hver af brugerens indlæg. Andre programmer giver dig mulighed for at uploade datafiler til analyse.
Du kan bruge PHP's indbyggede fopen () -funktion, som automatisk åbner en stream til en fil eller URL, der giver brugerne mulighed for at uploade filer. Desværre er denne metode moden til udnyttelse af ondsindede brugere, der kan bruge den til at uploade filer fra eksterne servere på din webserver.
Forebyggelse af denne type udnyttelse kræver, at du deaktiverer to indstillinger i php. ini: register_globals og url_fopen. Deaktivering af disse indstillinger forhindrer brugere i at bruge PHP's indbyggede filoploading uden at du udtrykkeligt gør det muligt for denne funktionalitet.
Når du har deaktiveret disse to funktioner i php. ini, skal du stadig tillade brugere at uploade filer. Brug PHPs FTP-funktionssæt, en langt mere sikker metode end fopen (), så brugerne kan uploade filer.
Du kan bruge FTP-funktionerne ret intuitivt. For det første etablerer du en forbindelse, så uploader du de filer, du har brug for, og endelig lukker du forbindelsen. Her er hvordan du bruger FTP-funktionerne i PHP:
Her er de mest almindelige FTP-funktioner og deres argumenter:
-
ftp_connect (streng $ vært [int $ port [int $ timeout]]) : < Opret forbindelse til FTP-serveren - i dette tilfælde din webserver.
-
: Send login credentials til FTP serveren. ftp_put (ressource $ ftp_stream, streng $ remote_file, streng $ local_file, int $ mode [int $ startpos])
-
: Sæt en fil fra den lokale maskine til serveren. ftp_get (ressource $ ftp_stream, streng $ local_file, string $ remote_file, int $ mode [int $ resumepos])
-
: Få en fil fra serveren og send den til en lokal maskine. ftp_close (ressource $ ftp_stream)
-
: Luk forbindelsen til serveren. Du skal lukke FTP-strømmen, så snart du er færdig med det; Ellers har du en åben forbindelse, der er sårbar over for kapringen.