simenss Skrevet 4. mars 2006 Del Skrevet 4. mars 2006 (endret) Jeg ønsker av sikkerhetsmessige årsaker å fjerne all HTML fra alle POST-variabler. Har prøvd strip_tags($_POST) men det virker ikke. Er det mulig å gjøre det i en opperasjon, slik at jeg slipper å bruke stripslashes på hver enkelt POST-variabel? EDIT: Mente da selvfølgelig strip_tags()... Endret 5. mars 2006 av simenss Lenke til kommentar
CruellaDeVille Skrevet 4. mars 2006 Del Skrevet 4. mars 2006 (endret) Jeg ønsker av sikkerhetsmessige årsaker å fjerne all HTML fra alle POST-variabler. Har prøvd stripslashes($_POST) men det virker ikke. Er det mulig å gjøre det i en opperasjon, slik at jeg slipper å bruke stripslashes på hver enkelt POST-variabel? 5698497[/snapback] Du kan bruke funksjonen htmlentities , som konverterer html-tagger til tilsvarende tegn (< blir til <). Du kan også bruke addslashes(<variabelen>) . Denne escaper alle ' (enkelt anførselstegn) og " (dobbelt anførselstegn). Dette for å forhindre at en bruker kjører cross-scripting til din (ev) database. tilsist har du funksjonen strip_tags (<input>, '<tillatte tagger, som <b>, <i>, <u> osv') , denne fjerner all htmlkode i input, med unntak av de som er listet opp som andre parameter. Dette parameteret er valgfritt. Jeg tror jeg ville brukt en kombinasjon av addslashes og striptags, dvs $input = addslashes(trim(strip_tags($_POST['input']))); Trim() fjerner whitespace på begynnelsen og slutten. Endret 4. mars 2006 av CruellaDeVille Lenke til kommentar
CruellaDeVille Skrevet 4. mars 2006 Del Skrevet 4. mars 2006 Jeg ønsker av sikkerhetsmessige årsaker å fjerne all HTML fra alle POST-variabler. Har prøvd stripslashes($_POST) men det virker ikke. Er det mulig å gjøre det i en opperasjon, slik at jeg slipper å bruke stripslashes på hver enkelt POST-variabel? 5698497[/snapback] Så plutselig at du vil automatisere prosessen istedet for å gjøre det på hver enkelt variabel. Det kan gjøres slik: while(list($key, $val) = each($HTTP_POST_VARS)) { $val= addslashes(trim(strip_tags($val))); } Tror at når du da skal hente de ut blir det noe slikt som $var['variabelnavn'] Lenke til kommentar
Ernie Skrevet 4. mars 2006 Del Skrevet 4. mars 2006 (endret) Jeg ønsker av sikkerhetsmessige årsaker å fjerne all HTML fra alle POST-variabler. Har prøvd stripslashes($_POST) men det virker ikke. Er det mulig å gjøre det i en opperasjon, slik at jeg slipper å bruke stripslashes på hver enkelt POST-variabel? 5698497[/snapback] Så plutselig at du vil automatisere prosessen istedet for å gjøre det på hver enkelt variabel. Det kan gjøres slik: while(list($key, $val) = each($HTTP_POST_VARS)) { $val= addslashes(trim(strip_tags($val))); } Tror at når du da skal hente de ut blir det noe slikt som $var['variabelnavn'] 5699001[/snapback] Hyyyl! Forsåvidt så spiller det ikke så mye rolle her, men du er klar over at det der er en grusomt tung måte å gjøre det på? Joa, det ser ganske greit ut, men det er i praksis godt over 10 ganger treigere enn den mest optimale løsningen som hvis jeg husker korrekt skal være følgende: $keys = array_keys($_POST); $size = sizeof($keys); for($i = 0; $i < $size; $i++) $_POST[$keys[$i]] = addslashes(trim(strip_tags($_POST[$keys[$i]]))); Endret 4. mars 2006 av Ernie Lenke til kommentar
CruellaDeVille Skrevet 5. mars 2006 Del Skrevet 5. mars 2006 Jeg ønsker av sikkerhetsmessige årsaker å fjerne all HTML fra alle POST-variabler. Har prøvd stripslashes($_POST) men det virker ikke. Er det mulig å gjøre det i en opperasjon, slik at jeg slipper å bruke stripslashes på hver enkelt POST-variabel? 5698497[/snapback] Så plutselig at du vil automatisere prosessen istedet for å gjøre det på hver enkelt variabel. Det kan gjøres slik: while(list($key, $val) = each($HTTP_POST_VARS)) { $val= addslashes(trim(strip_tags($val))); } Tror at når du da skal hente de ut blir det noe slikt som $var['variabelnavn'] 5699001[/snapback] Hyyyl! Forsåvidt så spiller det ikke så mye rolle her, men du er klar over at det der er en grusomt tung måte å gjøre det på? Joa, det ser ganske greit ut, men det er i praksis godt over 10 ganger treigere enn den mest optimale løsningen som hvis jeg husker korrekt skal være følgende: $keys = array_keys($_POST); $size = sizeof($keys); for($i = 0; $i < $size; $i++) $_POST[$keys[$i]] = addslashes(trim(strip_tags($_POST[$keys[$i]]))); 5699370[/snapback] nå ble jeg litt nysgjerrig. Hvorfor grusomt tungvindt måte å gjøre ting på? Og hvorfor er en forløkke raskere enn en while? Lenke til kommentar
Ernie Skrevet 5. mars 2006 Del Skrevet 5. mars 2006 Jeg ønsker av sikkerhetsmessige årsaker å fjerne all HTML fra alle POST-variabler. Har prøvd stripslashes($_POST) men det virker ikke. Er det mulig å gjøre det i en opperasjon, slik at jeg slipper å bruke stripslashes på hver enkelt POST-variabel? 5698497[/snapback] Så plutselig at du vil automatisere prosessen istedet for å gjøre det på hver enkelt variabel. Det kan gjøres slik: while(list($key, $val) = each($HTTP_POST_VARS)) { $val= addslashes(trim(strip_tags($val))); } Tror at når du da skal hente de ut blir det noe slikt som $var['variabelnavn'] 5699001[/snapback] Hyyyl! Forsåvidt så spiller det ikke så mye rolle her, men du er klar over at det der er en grusomt tung måte å gjøre det på? Joa, det ser ganske greit ut, men det er i praksis godt over 10 ganger treigere enn den mest optimale løsningen som hvis jeg husker korrekt skal være følgende: $keys = array_keys($_POST); $size = sizeof($keys); for($i = 0; $i < $size; $i++) $_POST[$keys[$i]] = addslashes(trim(strip_tags($_POST[$keys[$i]]))); 5699370[/snapback] nå ble jeg litt nysgjerrig. Hvorfor grusomt tungvindt måte å gjøre ting på? Og hvorfor er en forløkke raskere enn en while? 5702835[/snapback] Faktisk har det noe med hvilke funksjoner du bruker. Normalt er en while-loop raskest (iallfall i PHP5). Derimot er nok array_keys og sizeof betraktelig raskere enn list og each. Lenke til kommentar
Peter Skrevet 5. mars 2006 Del Skrevet 5. mars 2006 hva med foreach, er det bare en wrapper rundt list og each? Lenke til kommentar
Ernie Skrevet 5. mars 2006 Del Skrevet 5. mars 2006 hva med foreach, er det bare en wrapper rundt list og each? 5704055[/snapback] Utfra ytelsen så kan det se slik ut ja. 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å