sql >> Database teknologi >  >> RDS >> Mysql

Er det godt at bruge htmlspecialchars() før indsættelse i MySQL?

Som andre har påpeget, er #2 det rigtige svar. Lad det være "råt", indtil du skal bruge det, og undslip derefter på passende vis.

For at uddybe hvorfor (og jeg vil gentage/opsummere de andre indlæg), lad os tage scenario 1 til sin logiske yderlighed.

Hvad sker der, når nogen indtaster " ' OR 1=1 <other SQL injection> -- ". Nu beslutter du måske, at fordi du bruger SQL, skal du kode for SQL (måske fordi du ikke brugte parametriserede sætninger). Så nu skal du blande (eller beslutte dig for) SQL &HTML-kodning.

Pludselig beslutter din chef, at han også vil have et XML-output. For nu at holde dit mønster konsekvent skal du også kode for det.

Næste CSV - åh nej! Hvad hvis der er anførselstegn og kommaer i teksten? Flere flygter!

Hej - hvad med et godt interaktivt AJAX-interface? Nu vil du sandsynligvis begynde at sende JSON tilbage til browseren, så nu skal {, [ osv. alle tages i betragtning. HJÆLP!!

Så klart, gem dataene som givet (underlagt domænebegrænsninger selvfølgelig) og indkode passende til dit output på det tidspunkt, du har brug for det . Dit output er ikke det samme som dine data.

Jeg håber, at dette svar ikke er for nedladende. Tak til de andre respondenter.




  1. Hvordan skal jeg importere data fra CSV til en Postgres-tabel ved hjælp af pgAdmin 3?

  2. Få optælling af poster, der er påvirket af INSERT eller UPDATE i PostgreSQL

  3. MySQL LOG10() Funktion – Returner base-10 logaritmen for en værdi

  4. Får mærkelige tegn, når der hentes værdi i mysql-databasen