login  Naam:   Wachtwoord: 
Registreer je!
Scripts > PHP > Beveiliging > XSS Filter


Reacties op het script XSS Filter

Offline  kilian
Gepost op: 30 mei 2009 - 17:34
Lid



Foutje in code, lijn 13. Je sluit, en opent direct weer de single quotes.

Kilian

Offline  Koen
Gepost op: 30 mei 2009 - 18:38
PHP expert



kilian schreef:
Foutje in code, lijn 13. Je sluit, en opent direct weer de single quotes.

Kilian


Die quote is ge-escaped, dat is een bug in geshi syntax highlighter.

Offline  kilian
Gepost op: 31 mei 2009 - 15:02
Lid



Amai, jah, was precies niet wakker.
Mijn excuses voor het overhaast reageren!
Doe zo voort 

Kilian

Offline  Koen
Gepost op: 31 mei 2009 - 15:08
PHP expert



Het script is niet van mij he, kijk naar de auteur 

Offline  Thomas
Gepost op: 11 november 2014 - 14:15
Moderator



Deze functie is een complexe blacklist. Het probleem met blacklists (niet alleen in combinatie met security) is dat deze alleen de gedocumenteerde gevallen onschadelijk maakt. Mis je een geval, dan heb je een lek.

Je wilt het eigenlijk omdraaien: je wilt dat je output aan een bepaald formaat voldoet.

Veel hangt af van de toepassing van je input. Als het simpelweg gaat om het weergeven van data als "plain text", dan volstaat htmlspecialchars() in combinatie met ENT_QUOTES en met gebruikmaking van de juiste character encoding (respectievelijk tweede en derde parameter van htmlspecialchars()). Dit is een vorm van output escaping.

Soms is htmlspecialchars() niet genoeg. Maar daar heeft je invoer meestal een speciale toepassing - deze moet je eerst inspecteren voordat je deze gebruikt. Dit is een vorm van input filtering.

Bij filter input, escape output is de context waarin je data gebruikt (een HTML document, een MySQL query) belangrijk. Elk van deze contexten heeft namelijk zijn eigen (en verschillende) manieren om invoer te controleren en uitvoer van hun speciale betekenis binnen de context te ontdoen.

Af en toe worden dit soort functies in de verkeerde context ingezet, denk bijvoorbeeld aan addslashes() om query data te escapen. Dit zou vermeden moeten worden omdat:
- de functie niet bestemd is voor die context
- de set van karakters die addslashes() escaped is (hoogstwaarschijnlijk) anders dan de set van karakters die een speciale betekenis heeft binnen MySQL - hier zijn andere functies voor!


Enkel aanvullende informatie, vragen en antwoorden op vragen zijn welkom.
 
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.021s