On Mon, 17 Feb 2003 17:11:26 +0100, Martin Mouritzen wrote:
>>1) brugeren indtaster tekst som gerne må indeholde visse HTML-tags, men
>>ikke alle. Således at man undgår XSS-attacks og lign.
>
>
http://www.php.net/manual/en/function.strip-tags.php
Denne funktion har jeg såmænd kigget på, men jeg synes ikke rigtigt
funktionens beskrivelse giver mig et fuldgyldigt svar på det jeg ønsker.
Der står bl.a.:
"It errors on the side of caution in case of incomplete or bogus tags."
Dette vil altså sige at jeg får smidt en fejl tilbage i hovedet hvis
brugeren indtaster noget bogus, eller har jeg misforstået noget?. Men
hvad gør jeg så ud over strip_tags()? Skal jeg finde et eller andet ondt
regex frem? Skal jeg kun tillade selvopfundne tags a la:
etc.?
Hvordan gør I?
Jeg ønsker ikke at stå i en situation hvor et ikke-lukket <b>-tag gør
at resten af siden bliver i fed skrift!
>>2) Teksten bliver gemt i en database.
>
>
http://www.php.net/manual/en/function.stripslashes.php
>
http://www.php.net/manual/en/function.addslashes.php
Disse funktioner havde jeg som sagt kigget på, det jeg efterlyser er en
lidt mere grundig uddybelse af hvordan disse skal bruges korrekt(!). En
henvisning til en artikel om sikkerheden mht. Database<->PHP ville være
helt fornuftig.
>>Hvilke midler i henholdsvis 1, 2 og 3 skal man tage i brug for at være
>>på den helt sikre side, så der ikke kan laves injection- og
>>XSS-attacks?
>
> Nu er jeg ikke helt klar over hvad et XSS eller injection attack er (Er
> det hvor man f.eks. lavet <img src="JavaScript:alert();"> ?)
Ja, for eksempel. Det jeg ønsker er en bulletproof(tm) måde hvorpå man kan
være sikker på at brugeren ikke laver disse numre.
Nu er problemet jo ikke nyt og uprøvet, så problemstillingen må være
gennemgået før og der må næsten være lavet nogle artikler der gennemgår
hvorledes man skal gribe sagen an.
> Men så længe du validerer din data korrekt burde det ikke ske.
Altså, det er jo ikke min data. Jeg kan ikke være sikker på at brugeren
har været konsistent i sin indtastning af tekst i en form. Specielt ikke
hvis det er en tilfældig bruger der kunne have andre hensigter.
Findes der ikke et gennemprøvet system/klasse i fx. PEAR eller lign. som
kan tage hånd om denne problemstilling om input validering?
--
Tommy Olsen