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

Je urlencode() dostatečně dobrý, aby zastavil všechny útoky SQL injection v roce 2011

urlencode() nemá co dělat s SQL, takže zabrání vstřikování SQL stejně jako petrolej, aby byly vaše hamburgery chutnější. Kromě toho vše, co vstoupí do vaší databáze, skončí zakódovanou adresou URL, kterou pak musíte dekódovat, pokud s nimi chcete po načtení databáze udělat něco užitečného.

Na druhé straně útěk z vašich dotazů pomáhá vaší aplikaci chránit se před injekcí SQL a ničím jiným. Neupravuje data zadáváte své dotazy; pouze chrání vaše dotazy před manipulací. To je myšlenka SQL injection, a to je také důvod, proč kódování URL vašich dat nedělá nic, aby proti nim chránilo. Je pravda, že dělá otočte své apostrofy ' do %27 , čímž jsou neškodné, ale jak je uvedeno ve výše uvedeném odstavci, budete je muset dekódovat pomocí URL zpět na apostrofy, abyste je mohli použít.

Použijte správný nástroj pro správný účel. Zejména v roce 2011 byste měli používat připravené příkazy namísto ručního escapování proměnných dotazu a zřetězení řetězců při vytváření dotazů.



  1. Jak vypočítat čtverec v SQL Server

  2. MySQL Zobrazit uživatele

  3. Stránkování pro zobrazení maximální hodnoty a omezení zbytku

  4. MySQL a polská slova