sql >> Databáze >  >> RDS >> Mysql

Je dobré použít htmlspecialchars() před vložením do MySQL?

Jak uvedli jiní, správná odpověď je #2. Nechte to „syrové“, dokud to nebudete potřebovat, a poté odpovídajícím způsobem unikněte.

Abychom upřesnili proč (a zopakuji/shrnu ostatní příspěvky), dovedeme scénář 1 do jeho logického extrému.

Co se stane, když někdo zadá " ' OR 1=1 <other SQL injection> -- ". Možná se teď rozhodnete, že protože používáte SQL, měli byste kódovat pro SQL (možná proto, že jste nepoužívali parametrizované příkazy). Takže teď musíte smíchat (nebo se rozhodnout) kódování SQL a HTML.

Najednou se váš šéf rozhodne, že chce také výstup XML. Nyní, aby byl váš vzor konzistentní, musíte pro to také kódovat.

Další CSV - ach ne! Co když jsou v textu uvozovky a čárky? Více útěku!

Hej - co takhle pěkné interaktivní rozhraní AJAX? Nyní pravděpodobně chcete začít odesílat JSON zpět do prohlížeče, takže nyní je třeba vzít v úvahu všechny {, [ atd. POMOC!!

Takže jasně, ukládejte data tak, jak jsou uvedena (samozřejmě s výhradou doménových omezení) a zakódujte je odpovídající vašemu výstupu v době, kdy je potřebujete . Váš výstup není stejný jako vaše data.

Doufám, že tato odpověď není příliš povýšená. Poděkujte ostatním respondentům.




  1. Omezení, které umožňuje pouze jedné ze dvou tabulek odkazovat na základní tabulku

  2. Jaký je rozdíl mezi postgres a postgresql_psycopg2 jako databázovým strojem pro django?

  3. Spočítejte všechny podřízené uzly hierarchických dat v tabulce

  4. Jak mohu vybrat řádky v MySQL počínaje daným číslem řádku?