"Tillräckligt sanering" beror helt och hållet på vilken miljö du pratar om. Sanering för MySQL bör betraktas som helt separat från sanering för webbutdata, och du bör hantera dem separat för att undvika mycket krångel.
Desinficering för MySQL
mysql_real_escape_string()
kommer att rensa en bit data och göra den säker att placera i en SQL-fråga.- Alla andra typer av skadlig data, som HTML-taggar inuti strängen, bör absolut ignoreras. Att försöka manipulera det här kommer att leda till huvudvärk när du försöker "avmanipulera" det senare efter att ha tagit ut det från databasen. Dålig "webbdata" kan inte skada din databas.
Desinficering för utdata
htmlspecialchars($val)
vid utdatatid kommer att förhindra att skadliga taggar renderas, eftersom<
och> tecken konverteras till sina entitetsrepresentationer och renderas inte som taggavgränsare.
- Använd
ENT_QUOTES
modifierare om du matar ut något som finns i ett HTML-elements citerade attribut, till exempel
Det borde vara allt du behöver, om du inte har speciella krav. strip_tags()
borde egentligen inte användas för sanering, eftersom det kan luras med dåligt format HTML. Sanering är ett värdigt mål, och om du kan hålla isär dina sammanhang kommer du att stöta på färre problem med datamanipulation mellan dem.