Degeim Skrevet 1. mai 2007 Del Skrevet 1. mai 2007 Jeg vurderer å bruke POST til å sende innholdet i en fil fra klient til server, men lurer på om det er noen tegn som blir "oversatt", droppet eller som ødelegger når de er i POST-stringen? Det er en variabel som blir sendt, og det er "input" ($_POST['input']). Er det noe jeg må se opp for som kan gjøre at det som kommer ut av $_POST['input'] er annerledes enn det som kom inn i formen, og kan jeg eventuelt gjøre noe for å fohindre dette? Takk, Degeim Lenke til kommentar
mske Skrevet 1. mai 2007 Del Skrevet 1. mai 2007 (endret) Hei! Opprinnelig er det ingenting som forandres nei, men hvis du ikke sikrer inputen fra brukeren er det mye som kan gå galt. La oss si at en bruker skriver inn et lite javascript i den formen, det kan være ganske ødeleggende (Bare for å ta et eksempel). Hvis det du tar imot fra brukeren skal inn i MySQL, kan du da bruke mysql_real_escape_string($_POST['input']); //Output bør også alltid escapes, bruk stripslashes() og htmlspecialchars() Om det ikke skal lagres noen plass, tror jeg - uten å si det så veldig sikkert ettersom jeg ikke er den største eksperten på sikkerhet her - at du kan gjøre slik: stripslashes(htmlspecialchars($_POST['input'])); Lykke til! Endret 1. mai 2007 av -Magne- Lenke til kommentar
xqus Skrevet 1. mai 2007 Del Skrevet 1. mai 2007 Hvis du skal laste opp filer, ta en titt her: http://no.php.net/manual/en/features.file-upload.php Lenke til kommentar
Degeim Skrevet 1. mai 2007 Forfatter Del Skrevet 1. mai 2007 All informasjon som ligger i input-variabelen skal bare lagres direkte til en fil; skal ikke behandles på noen måte. Kan det da gjøre noe skade om brukeren har klart å lure inn javascript/mysql/html eller annet? Lenke til kommentar
mske Skrevet 1. mai 2007 Del Skrevet 1. mai 2007 Hvis du ikke skal lese den filen ut på en nettside igjen, tror jeg ikke det er så mye en bruker kan gjøre. Bortsett fra at du får en fil full i koder ;p Lenke til kommentar
Crowly Skrevet 1. mai 2007 Del Skrevet 1. mai 2007 POST har vel også en begrensning på hvor mye data som kan sendes. Så det vel bedre å se på ett filopplastnings script. Lenke til kommentar
Degeim Skrevet 1. mai 2007 Forfatter Del Skrevet 1. mai 2007 Er det mulig å finne ut hvor stor denne begrensingen er? Jeg skulle gjerne sett på et filopplastingsscript, men jeg har forstått at man kan ikke laste opp filer uten at noen trykker på "Submit" av sikkerhetsårsaker. Er det feil? Takk, Degeim Lenke til kommentar
Crowly Skrevet 1. mai 2007 Del Skrevet 1. mai 2007 Ja, bruk phpinfo(); og finn post_max_size. Lenke til kommentar
Degeim Skrevet 1. mai 2007 Forfatter Del Skrevet 1. mai 2007 post_max_size=8M. Vil det si at jeg kan POSTe opptil 8 megabyte med informasjon? Degeim Lenke til kommentar
Gjest Slettet+142 Skrevet 1. mai 2007 Del Skrevet 1. mai 2007 jepp. Det er jo ikke så alt for mye hvis det er snakk om filer som sanger og videoer da men har satt min til 100MB jeg. Er ikke sikker på hvorfor, men.. Lenke til kommentar
Degeim Skrevet 4. mai 2007 Forfatter Del Skrevet 4. mai 2007 Er det noen anbefalinger for eller imot? Bør jeg bruke POST-funksjonen som mottar data og lagrer det i en fil i stedet for vanlig opplastingsskjema? Noen grunn til at jeg ikke bør gjøre det? Lenke til kommentar
xqus Skrevet 4. mai 2007 Del Skrevet 4. mai 2007 Er det noen anbefalinger for eller imot? Bør jeg bruke POST-funksjonen som mottar data og lagrer det i en fil i stedet for vanlig opplastingsskjema? Noen grunn til at jeg ikke bør gjøre det? 8536980[/snapback] Hva mener du? Vanlig opplastingsskjema sender jo en POST request. Lenke til kommentar
Degeim Skrevet 4. mai 2007 Forfatter Del Skrevet 4. mai 2007 Ja, det gjør den vel, men jeg vet ikke hvordan den sender filen. Jeg mener å sende innholdet i filen i en POST-variabel, og så skrive det til en fil, i stedet for å bruke opplastingsskjema, siden man da må trykke "Last opp" og "Send" for å få det gjort (jeg må ha det automatisk). Det jeg egentlig lurer på er om det er noen sikkerhetshull eller ting som kan gå galt når jeg sender innholdet i en fil på den måten (innholdet kan jo være så og si hva som helst). Lenke til kommentar
Gjest Slettet+142 Skrevet 4. mai 2007 Del Skrevet 4. mai 2007 sjekk hvilken type det er, før du buker move_uloaded_file(). for å laste opp etter å ha valgt Last Opp tror jeg du må ha Javascript innblandet Lenke til kommentar
Crowly Skrevet 5. mai 2007 Del Skrevet 5. mai 2007 Ja, det gjør den vel, men jeg vet ikke hvordan den sender filen. Jeg mener å sende innholdet i filen i en POST-variabel, og så skrive det til en fil, i stedet for å bruke opplastingsskjema, siden man da må trykke "Last opp" og "Send" for å få det gjort (jeg må ha det automatisk). Det jeg egentlig lurer på er om det er noen sikkerhetshull eller ting som kan gå galt når jeg sender innholdet i en fil på den måten (innholdet kan jo være så og si hva som helst). 8537081[/snapback] Tror jeg kanskje ville ha sett på FTP overføring (om mulig), det skulle vel være enklere og automatisere. http://www.w3schools.com/php/php_ref_ftp.asp http://no.php.net/manual/en/ref.ftp.php Lenke til kommentar
Matsemann Skrevet 5. mai 2007 Del Skrevet 5. mai 2007 Det jeg egentlig lurer på er om det er noen sikkerhetshull eller ting som kan gå galt når jeg sender innholdet i en fil på den måten (innholdet kan jo være så og si hva som helst). 8537081[/snapback] Du må passe på null-byte-hullet. Dvs at jeg kan laste opp en fil som jeg kaller for minphpfil.php%00.jpg Det vil bli gjort om til minphpfil.php\0.jpg, og serveren vil prøve å lagre denne. Du tror kanskje at det er et bilde, men den vil bli lagret som en php-fil, og brukeren kan da laste opp php-filer som han vil på din server, og deretter kjøre dem. Det skjer fordi Apache/webserveren tolker \0 som slutten på en streng. .jpg som ligger bak teller derfor ikke, og den oppretter filen minphpfil.php med innholdet som brukeren selv har lastet opp. Litt knotete forklart ( ), men det er noe å være obs på... Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå