Jestem pewien, że kilka razy wymieniłem listę, mimo że wynik wyszukiwania Google jest wypełniony tylko ludźmi mówiącymi, jak to zrobić:
- To jest
eval
eval
ma naturalne zdolności do łatwego wstrzykiwania, jest jak odpowiednik SQL bez PDO, jeśli nie zbudujesz wokół niego pełnej biblioteki ucieczki, może cię zepsuć. Korzystając z tych funkcji, skutecznie zastępujesz bezpieczniejszy natywny język MongoDB czymś, co jest tak samo niepewne, jak każdy stary SQL.- Wymaga blokady globalnej i może przyjąć blokadę zapisu i nie zostanie zwolniona, dopóki operacja nie zostanie całkowicie wykonana, w przeciwieństwie do innych operacji, które zostaną zwolnione w niektórych przypadkach.
eval
działa tylko z podstawowymi i nigdy z żadnym innym członkiem zestawu replik- W zasadzie jest to uruchomiona, niesprawdzona, tona JS w pakiecie envo V8/spidermonkey, który jest dostarczany z MongoDB z pełną możliwością dotykania dowolnej części bazy danych i poleceń administracyjnych, czy to brzmi bezpiecznie?
- Nie jest to MongoDB ani „MongoDBs SQL”, działa we wbudowanym środowisku JS, a nie w samym kodzie MongoDBs C++ (w przeciwieństwie do struktury agregacji).
- Ze względu na poprzedni punkt jest BARDZO wolny w porównaniu z wieloma innymi opcjami, dotyczy to
$where
również użycie.
To powinno wystarczyć, aby zacząć na tym froncie.