sql >> Database >  >> RDS >> Mysql

Is het goed om htmlspecialchars() te gebruiken voor het invoegen in MySQL?

Zoals anderen al hebben opgemerkt, is #2 het juiste antwoord. Laat het "rauw" totdat je het nodig hebt, en ontsnap dan op de juiste manier.

Om uit te leggen waarom (en ik zal de andere berichten herhalen/samenvatten), laten we scenario 1 tot het logische uiterste doorvoeren.

Wat gebeurt er als iemand " ' OR 1=1 <other SQL injection> -- . invoert ". Misschien besluit je dat je, omdat je SQL gebruikt, moet coderen voor SQL (misschien omdat je geen geparametriseerde instructies hebt gebruikt). Dus nu moet je SQL- en HTML-codering mixen (of beslissen).

Plots besluit je baas dat hij ook een XML-uitvoer wil. Om je patroon consistent te houden, moet je daar ook voor coderen.

Volgende CSV - oh nee! Wat als er aanhalingstekens en komma's in de tekst staan? Meer ontsnappen!

Hé - wat dacht je van een leuke interactieve AJAX-interface? Nu wil je waarschijnlijk beginnen met het terugsturen van JSON naar de browser, dus nu moeten {, [ etc. allemaal in overweging worden genomen. HELP!!

Sla de gegevens dus duidelijk op zoals opgegeven (uiteraard onderhevig aan domeinbeperkingen) en codeer passend voor uw uitvoer op het moment dat u het nodig heeft . Je output is niet hetzelfde als je gegevens.

Ik hoop dat dit antwoord niet te betuttelend is. Met dank aan de andere respondenten.




  1. Tabelvariabele maken in MySQL

  2. Dynamisch alternatief voor pivoteren met CASE en GROUP BY

  3. SQL Server-vergrendelingen - andere vergrendelingen die u moet kennen

  4. Psql kan geen verbinding maken met de server:geen bestand of map, 5432-fout?