MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Как MongoDB избягва бъркотията с инжектиране на SQL?

MongoDB избягва потенциалните проблеми, като не анализира.

Всеки API, навсякъде, който включва кодиране на потребителски данни във форматиран текст, който се анализира, има потенциала обаждащият се и обажданият да не са съгласни как този текст трябва да бъде анализиран. Тези разногласия могат да бъдат проблеми със сигурността, когато данните се тълкуват погрешно като метаданни. Това е вярно, независимо дали говорите за низове във формат printf, включително генерирано от потребителя съдържание в HTML, или генериране на SQL.

Тъй като MongoDB не анализира структурирания текст, за да разбере какво да прави, няма възможност за погрешно тълкуване на въведеното от потребителя като инструкции и следователно няма възможна дупка в сигурността.

Между другото съветът за избягване на API, които изискват синтактичен анализ, е точка 5 в http://cr.yp.to/qmail/guarantee.html. Ако се интересувате от писане на защитен софтуер, си струва да разгледате и останалите 6 предложения.

Актуализация (2018):Първоначалният отговор, както го дадох, остава верен доколкото ми е известно. От гледна точка на това, което се изпраща към MongoDB, до това, което се изпраща обратно, няма атака с инжектиране на SQL. Атаките с инжектиране, за които знам, се случват извън MongoDB и всъщност са проблеми в начина, по който външните езици и библиотеки настройват структурата на данните, която ще се предава на MongoDB. Освен това местоположението на уязвимостта е в начина, по който данните се анализират по пътя към превръщането им в структура от данни. Следователно първоначалният отговор описва точно как да избегнете инжекционни атаки, така и какво ви излага на риск от тях.

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



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Преброяване на групи с MongoDB, използвайки рамка за агрегиране

  2. Търсене на стойност на всяко поле в MongoDB без изрично именуване

  3. Какъв е правилният начин да направите синхронна заявка за MongoDB в Node.js?

  4. MongoDB $isoWeek

  5. MongoDB Analytics Series:SlamData – Изпълнявайте SQL и изграждайте отчети директно в MongoDB