Skip to content

@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?

SanitizeFilterOptions = {}

Ver SanitizeFilterOptions.

Returns

T

Um NOVO objeto de filtro sanitizado — o filter original não é modificado.