Gram w pobliżu z node.js, express i mongoose.Jak niebezpieczne jest zapytanie mongo, które jest pobierane bezpośrednio z ciągu zapytania adresu URL?
W trosce o to, aby coś w tej chwili działało, przechodzę przez obiekt ciągu zapytań ekspresowych bezpośrednio do funkcji wyszukiwania mongoose. Ciekawi mnie, jak niebezpieczna byłaby ta praktyka w aplikacji na żywo. Wiem, że RDBMS byłby bardzo podatny na iniekcję SQL. Oprócz dobrych rad „zdezynfekować swoje wejścia” jak zły jest ten kod:
app.get('/query', function (req, res) {
models.findDocs(req.query, function (err, docs) {
res.send(docs);
});
});
znaczy, że aa get żądanie http://localhost:8080/query?name=ahsteele&status=a
po prostu wpakować następujące do funkcji findDocs:
{
name: 'ahsteele',
status: 'a'
}
to czuje icky z wielu powodów, ale jak niebezpieczne jest to? Jaka jest najlepsza praktyka przekazywania parametrów zapytania do mongodb? Czy ekspres zapewnia jakiekolwiek odkażanie z pudełka?
Czy słyszałeś o zastrzyku operatora? W jaki sposób ktoś mógłby utworzyć zapytanie w obrębie adresu URL, które mogłoby zbierać dane z danych, podobnie jak w przypadku tabel bobby? – Sammaye
Po zaakceptowaniu wymaganej odkażania, należy również dodać, że zapytania mogą powodować niepotrzebne niszczenie systemów, jeśli indeksy nie są używane itp. – WiredPrairie