sql >> Database >  >> RDS >> Mysql

Is urlencode() goed genoeg om alle SQL-injectieaanvallen in het jaar 2011 te stoppen?

urlencode() heeft niets te doen met SQL, dus het doet net zoveel om SQL-injectie te voorkomen als kerosine om je hamburgers lekkerder te maken. Trouwens, alles wat je database binnenkomt, wordt URL-gecodeerd, die je vervolgens moet decoderen als je er iets nuttigs mee wilt doen nadat je de database hebt opgehaald.

Aan de andere kant helpt het ontsnappen aan uw zoekopdrachten om uw toepassing te beschermen tegen SQL-injectie, en niets meer. Het wijzigt de gegevens niet u voert uw vragen in; het beschermt alleen uw zoekopdrachten van ermee geknoeid te worden. Dat is het idee van SQL-injectie, en het is ook de reden waarom de URL-codering van uw gegevens niets doet om ertegen te beschermen. Toegegeven, het doet draai je apostrofs ' in %27 , waardoor ze onschadelijk worden gemaakt, maar zoals vermeld in de bovenstaande paragraaf, moet je de URL weer decoderen in apostrofs om ze te kunnen gebruiken.

Gebruik het juiste gereedschap voor het juiste doel. Vooral in het jaar 2011 zou u voorbereide instructies moeten gebruiken in plaats van handmatig uw queryvariabelen te escapen en strings aaneen te schakelen om query's te vormen.



  1. Hoe de lijst bijwerken en verwijderen Gegevens weergeven in SQLite-database met kliklistener?

  2. Rails:Geen verbindingspool voor ActiveRecord::Base

  3. Je eigen TinyURL maken

  4. MySql:Tinyint (2) vs tinyint(1) - wat is het verschil?