Напади со инјектирање барања
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
Напади со инјектирање барања
Референца за `mongodb.security.request_injection.php` со подобрена типографија и навигација.
Напади со инјектирање барања
Ако поминувате $_GET (или $_POST) parameters to your queries, make sure that they are cast to strings first. Users can insert associative arrays in GET and POST requests, which could then become unwanted $-queries.
Прилично безопасен пример: да претпоставиме дека барате информации за корисник со барањето http://www.example.com?username=bob. Вашата апликација го креира прашањето
$q = new \MongoDB\Driver\Query( [ 'username' => $_GET['username'] ]).
Некој може да го поткопа ова со добивање
http://www.example.com?username[$ne]=foo, што PHP магично ќе го претвори во асоцијативен список, претворајќи го вашето прашање во
$q = new \MongoDB\Driver\Query( [ 'username' => [ '$ne' => 'foo' ] ] ), што ќе врати сите корисници кои не се именувани „foo“ (сите ваши корисници, веројатно).
This is a fairly easy attack to defend against: make sure $_GET and $_POST parameters are the type you expect before you send them to the database. PHP has the filter_var() функција за помош при ова.
Забележете дека овој тип на напад може да се користи со која било интеракција со базата на податоци што лоцира документ, вклучувајќи команди за ажурирање, upserts, бришење и findAndModify.
Константи за известување за грешки » главната документација за повеќе информации за проблеми слични на SQL-инјектирање со MongoDB.