Funderar lite på det här med när man ska använda htmlspecialchars, addslashes etc?
Jag använder mig av PDO för att kommunicera med mysql. Vad jag förstår behöver man inte använda addslashes, stripshlases etc när man använder sk. prepared statements med PDO?
Men hur är det med htmlspecialchars? Ska man använda det på all text som ska sparas i databasen innan det just sparas eller är det när den hämtats från databasen och ska presenteras på sidan?
Hej,
Funderar lite på det här med när man ska använda htmlspecialchars, addslashes etc?...
Här är grundregeln: Filter input - escape output!
htmlspecialchars - en slags escape - används alltså i det ögonblick du skall skicka data till användaren.
Databasfråga av insert, delete eller update - typ, är "output" till databasen. Då används (om man inte kör prepared statements) den funktion som stämmer med vald DBMS och valt API.
En grundtabbe är alltså följande:
1. Skriptet börjar med en escape-funktion
2. Data bearbetas
3. Data lagras
Följande är rätt tågordning:
1. Skriptet börjar med filtrering
2. Data bearbetas
3. Ev. data som lagras "escapas" för lagring (om ej PS)
4. Ev. ytterligare bearbetning (av icke-escapad data/hämtning från DBMS
5. Escape för visning på skärmen
6. Visning på skärmen
Vad är filtrering?
Kontroll av att indata uppfyller erforderliga kriterier och korrigering av acceptabla fel.