Video: Week 8, continued 2024
Det er ganske vanlig at webapplikasjoner lar brukere laste opp filer av en eller annen grunn. Du må sørge for at opplastingene er trygge. For eksempel kan noen meldingstavler tillate brukere å laste opp små bilder eller avatarer som vises ved siden av hver av brukerens innlegg. Andre programmer lar deg laste opp datafiler for analyse.
Du kan bruke PHPs innebygde fopen () -funksjon, som automatisk åpner en strøm til en fil eller URL som lar brukere laste opp filer. Dessverre er denne metoden moden til utnyttelse av ondsinnede brukere som kan bruke den til å laste opp filer fra eksterne servere til webserveren din.
Forebygging av denne typen utnyttelse krever at du deaktiverer to innstillinger i php. ini: register_globals og url_fopen. Deaktivering av disse innstillingene forhindrer brukere i å bruke PHPs innebygde filopplasting uten at du eksplisitt aktiverer den funksjonaliteten.
Når du deaktiverer disse to funksjonene i php. ini, du må fortsatt tillate brukere å laste opp filer. Bruk PHPs FTP-funksjonssett, en mye sikrere metode enn fopen (), slik at brukere kan laste opp filer.
Du kan bruke FTP-funksjonene ganske intuitivt. Først oppretter du en forbindelse, så laster du opp filene du trenger, og til slutt lukker du tilkoblingen. Slik bruker du FTP-funksjonene i PHP:
Her er de vanligste FTP-funksjonene og deres argumenter:
-
ftp_connect (streng $ vert [int $ port [int $ timeout]]) : < Koble til FTP-serveren - i dette tilfellet din webserver.
-
: Send innloggingsinformasjon til FTP-serveren. ftp_put (ressurs $ ftp_stream, streng $ remote_file, streng $ local_file, int $ modus [int $ startpos])
-
: Sett en fil fra den lokale maskinen til serveren. ftp_get (ressurs $ ftp_stream, streng $ local_file, streng $ remote_file, int $ modus [int $ resumepos])
-
: Få en fil fra serveren og send den til en lokal maskin. ftp_close (ressurs $ ftp_stream)
-
: Lukk forbindelsen til serveren. Du må lukke FTP-strømmen så snart du er ferdig med det; Ellers har du en åpen tilkobling som er utsatt for kapring.