@iamcalegari/mongoat / sanitizeFilter
Function: sanitizeFilter()
sanitizeFilter<
T>(filter,options?):T
Defined in: src/utils/sanitize.ts:198
Sanitiza um filtro de input não-confiável. OPT-IN — o dev chama explicitamente antes de montar/passar o filtro a um método do Model; nenhum método do Model chama isto automaticamente.
SEMPRE neutraliza (qualquer profundidade, dentro de $and/$or/$nor/ arrays, inclusive dentro de $expr): $where, $function, $accumulator — os três vetores de execução de JavaScript arbitrário no servidor MongoDB.
Quando stripUnknownTopLevel é true (default), TAMBÉM remove chaves de topo iniciadas por $ que não estejam na allowlist de operadores de query conhecidos ($gt, $in, $and, $or, $expr, ...) — protege contra query-selector injection clássico. Desligável via { stripUnknownTopLevel: false }; mesmo desligado, os operadores de execução de código continuam sendo removidos incondicionalmente.
PRESERVA operadores de query normais em qualquer profundidade ($gt, $in, $and, $or, ...) — senão seria inútil para queries legítimas. Nunca muta o filtro de entrada (opera sobre um clone); instâncias BSON (ObjectId/Date/RegExp/Buffer) não são recursadas nem têm o protótipo destruído.
Type Parameters
T
T extends Record<string, unknown>
Parameters
filter
T
Filtro potencialmente vindo de input não-confiável.
options?
Ver SanitizeFilterOptions.
Returns
T
Um NOVO objeto de filtro sanitizado — o filter original não é modificado.