Modulo: Mongo::supervisión::evento::Secure

Incluido en:
CommandFailed, CommandStarted, CommandSucceeded, Protocol::Msg, Protocol::Query
Definido en:
lib/mongo/supervisión/evento/secure.rb

Overview

Proporciona un comportamiento para enmascarar información sensible de los comandos y respuestas.

Desde:

  • 2.1.0

Resumen de constantes colapsar

REDACTED_COMMANDS =

Lista de comandos en la que los datos se ocultan por motivos de seguridad.

Desde:

  • 2.1.0

%w[
  Autenticar
  saslStart
  saslContinue
  getnonce
  createUser
  updateUser
  copydbgetnonce
  copydbsaslstart
  copydb
].freeze

Resumen del método de instancia colapsar

Detalles del método de instancia

#compression_allowed?(command_name) ⇒ true, false

Si la compresión está permitida para un mensaje de comando dado.

Ejemplos:

Determina si se permite la compresión para un comando determinado.

secure.compression_allowed?(selector)

Parámetros:

  • command_name (String, Símbolo)

    El nombre del comando.

Devuelve:

  • (true, false)

    Si se puede usar la compresión.

Desde:

  • 2.5.0



101
102
103
# Archivo 'lib/mongo/monitoring/event/secure.rb', línea 101

def compression_allowed?(command_name)
  @compression_allowed ||= !REDACTED_COMMANDS.incluir?(command_name.to_s)
end

#se ha redactado(command_name, documento) ⇒ BSON::Document

Redacta la información segura del documento si:

- its command is in the sensitive commands;
- its command is a hello/legacy hello command, and
speculative authentication is enabled;
- corresponding started event is sensitive.

Ejemplos:

Obtiene el documento editado.

secure.redacted(command_name, document)

Parámetros:

  • command_name (String, Símbolo)

    El nombre del comando.

  • Documento (BSON::Document)

    El documento.

Devuelve:

  • (BSON::Document)

    El documento editado.

Desde:

  • 2.1.0



79
80
81
82
83
84
85
86
87
88
89
# Archivo 'lib/mongo/monitoring/event/secure.rb', línea 79

def redactado(command_name, Documento)
  si %w[1 true ].incluir?(ENV['MONGO_RUBY_DRIVER_UNREDACT_EVENTS']&.minúscula)
    Documento
  elsif respond_to?(evento_iniciado) && evento_inicio.sensible
    BSON::Documento.Nuevo
  elsif ¿sensible?(command_name: command_name, documento: Documento)
    BSON::Documento.Nuevo
  else
    Documento
  end
end

#¿sensitivo?(nombre_de_comando:, documento:) ⇒ verdadero | falso

Comprueba si el comando es sensible en términos de la especificación de supervisión de comandos. Un comando se detecta como sensible si está en la lista o si es un comando hello/hello heredado, y la autenticación especulativa está habilitada.

Parámetros:

  • command_name (String, Símbolo)

    El nombre del comando.

  • Documento (BSON::Document)

    El documento.

Devuelve:

  • (true | false)

    Si el comando es confidencial.

Desde:

  • 2.1.0



49
50
51
52
53
54
55
56
57
58
59
60
61
62
# Archivo 'lib/mongo/monitoring/event/secure.rb', línea 49

def ¿sensible?(command_name:, documento:)
  si REDACTED_COMMANDS.incluir?(command_name.to_s)
    true
  elsif %w[hola esprincipal esMaestro].incluir?(command_name.to_s) &&
        Documento['speculativeAuthenticate']
    # Según la especificación de supervisión de comandos, para los comandos hello/hello legados
    # cuando speculativeAuthenticate está presente, sus comandos Y respuestas
    # DEBE eliminarse de los eventos.
    # Consulta https://github.com/mongodb/specifications/blob/master/source/command-logging-and-monitoring/command-logging-and-monitoring.md#security
    true
  else
    false
  end
end