"Nok sanering" afhænger helt af, hvilket miljø du taler om. Sanering for MySQL bør betragtes som helt adskilt fra desinficering til weboutput, og du bør håndtere dem separat for at undgå en masse besvær.
Desinficering til MySQL
mysql_real_escape_string()
renser et stykke data og gør det sikkert at placere i en SQL-forespørgsel.- Enhver anden type ondsindet data, såsom HTML-tags inde i strengen, bør absolut ignoreres. At forsøge at manipulere det her vil føre dig til hovedpine, da du forsøger at "af-manipulere" det senere efter at have fået det ud af databasen. Dårlige "webdata" kan ikke skade din database.
Desinficering til output
htmlspecialchars($val)
ved outputtid vil forhindre eventuelle ondsindede tags i at blive gengivet, fordi<
og> tegn konverteres til deres enhedsrepræsentationer og gengives ikke som tag-afgrænsere.
- Brug
ENT_QUOTES
modifikator, hvis du udsender noget, der er inde i et HTML-elements citerede attribut, såsom
Det burde være alt, hvad du behøver, medmindre du har særlige krav. strip_tags()
bør egentlig ikke bruges til desinficering, da det kan snydes med dårligt udformet HTML. Sanering er et værdigt mål, og hvis du kan holde dine kontekster adskilt, vil du løbe ind i færre problemer med datamanipulation mellem dem.