Mysql
 sql >> база данни >  >> RDS >> Mysql

Трябва ли да се предпазя от SQL инжекция, ако използвам падащо меню?

Да, трябва да се предпазите от това.

Нека ви покажа защо, използвайки конзолата за разработчици на Firefox:

Ако не почистите тези данни, вашата база данни ще бъде унищожена. (Това може да не е напълно валидно SQL изявление, но се надявам, че съм разбрал идеята си.)

Само защото сте ограничили наличните опции в падащото меню не означава ограничихте данните, които мога да изпращам на вашия сървър.

Ако сте се опитали да ограничите това допълнително чрез поведението на вашата страница, моите опции включват деактивиране на това поведение или просто написване на персонализирана HTTP заявка към вашия сървър, която така или иначе имитира изпращането на този формуляр. Има инструмент, наречен curl използван точно за това и мисля командата за изпращане на тази SQL инжекция така или иначе би изглеждала така:

curl --data "size=%27%29%3B%20DROP%20TABLE%20*%3B%20--"  http://www.example.com/profile/save

(Това може да не е напълно валидна команда curl, но отново се надявам, че съм разбрал идеята си.)

Така че, ще повторя:

НИКОГА не се доверявайте на въведеното от потребителя. ВИНАГИ се пазете.

Не приемайте, че всяко въвеждане на потребителя е безопасно. Това е потенциално опасно, дори ако пристигне по някакъв начин, различен от формуляр. Нито едно от тях не е достатъчно надеждно, за да се откажете от защитата си от SQL инжекция.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL разделя низ, разделен със запетая, във времева таблица

  2. Как да добавя препратка към MySQL конектора за .NET?

  3. Въведение в MySQL типовете данни

  4. Пребройте броя на появяванията на низ в поле VARCHAR?

  5. Как да запишете резултат от MySQL заявка в .CSV файл