Menu Docs
Página inicial do Docs
/ / /
Manual da Biblioteca PHP

Proteja seus dados

O MongoDB suporta vários mecanismos que protegem sua conexão com o banco de dados . Esta página contém exemplos de código que demonstram cada um desses mecanismos.

Dica

Para saber mais sobre qualquer um dos mecanismos mostrados nesta página, consulte o link fornecido em cada seção.

Para usar um exemplo desta página, copie o exemplo de código no aplicação de amostra ou em seu próprio aplicação. Certifique-se de substituir todos os espaços reservados nos exemplos de código,<hostname> como, pelos valores relevantes para sua implantação do MongoDB .

Você pode usar o seguinte aplicativo de exemplo para testar os exemplos de código nesta página. Para usar o aplicativo de amostra, execute as seguintes etapas:

  1. Verifique se a biblioteca PHP do MongoDB está instalada em seu projeto. Para saber mais sobre como instalar a biblioteca PHP do MongoDB , consulte o guia dedownload e instalação .

  2. Copie o seguinte código e cole-o em um novo arquivo .php .

  3. Copie um exemplo de código desta página e cole-o nas linhas especificadas no arquivo.

1<?php
2
3require __DIR__ . '/../vendor/autoload.php';
4
5// Start example code here
6
7// End example code here
8
9try {
10 $client->test->command(['ping' => 1]);
11 echo 'Successfully pinged the MongoDB server.', PHP_EOL;
12} catch (MongoDB\Driver\Exception\RuntimeException $e) {
13 printf("Failed to ping the MongoDB server: %s\n", $e->getMessage());
14}

O seguinte código mostra como autenticar utilizando o mecanismo de autenticação SCRAM-SHA-256 :

$uriOptions = [
'username' => '<username>',
'password' => '<password>',
'authSource' => '<authentication database>',
'authMechanism' => 'SCRAM-SHA-256',
];
$client = new MongoDB\Client(
'mongodb://<hostname>:<port>',
$uriOptions,
);
$uri = 'mongodb://<username>:<password>@<hostname>:<port>/?authSource=admin&authMechanism=SCRAM-SHA-256';
$client = new MongoDB\Client($uri);

Para saber mais sobre256 a autenticação SCRAM-SHA-,consulte Autenticação SCRAM no guia Autenticação.

O seguinte código mostra como criar um URI de conexão para autenticar utilizando o mecanismo de autenticação do X.509 :

$uriOptions = [
'tls' => true,
'tlsCertificateKeyFile' => '<file path>',
'authMechanism' => 'MONGODB-X509',
];
$client = new MongoDB\Client(
'mongodb://<hostname>:<port>',
$uriOptions,
);
$uri = 'mongodb://<hostname>:<port>/?tls=true&tlsCertificateKeyFile=<file path>&authMechanism=MONGODB-X509';
$client = new MongoDB\Client($uri);

Para saber mais sobre509 a autenticação X.,consulte Autenticação X.509 no guia de Autenticação.

As seções a seguir mostram como se conectar ao MongoDB usando o mecanismo de autenticação MONGODB-AWS . Quando você usa o MONGODB-AWS mecanismo, a MongoDB PHP biblioteca do tenta recuperar suas Amazon Web Services credenciais do das seguintes fontes, na ordem listada:

  1. Opções passadas para o construtor MongoDB\Client , como parte da string de conexão ou do parâmetro da array $uriOptions

  2. Variáveis de ambiente

  3. Solicitação Amazon Web Services EKS AssumeRoleWithWebIdentity

  4. Metadados do container ECS

  5. Metadados de instância do EC2

Cada seção mostra como autenticar com MONGODB-AWS ao recuperar suas credenciais do Amazon Web Services a partir de opções passadas para seu cliente ou fontes externas alternativas.

Para saber mais sobre autenticação com AWS, consulte Autenticação AWS IAM no guia Autenticação.

O código a seguir mostra como passar as credenciais do Amazon Web Services para o construtor MongoDB\Client para autenticação com MONGODB-AWS:

$uriOptions = [
'username' => '<AWS IAM access key ID>',
'password' => '<AWS IAM secret access key>',
'authMechanism' => 'MONGODB-AWS',
];
$client = new MongoDB\Client(
'mongodb://<hostname>:<port>',
$uriOptions,
);
$uri = 'mongodb://<AWS IAM access key ID>:<AWS IAM secret access key>@<hostname>:<port>/?authMechanism=MONGODB-AWS';
$client = new MongoDB\Client($uri);

Para saber mais sobre como autenticar com Amazon Web Services recuperando credenciais MongoDB\Client, consulte MongoDB\Client Credentials no guia Autenticação.

O código abaixo mostra como autenticar com MONGODB-AWS ao obter credenciais de variáveis de ambiente, uma solicitação AssumeRoleWithWebIdentity , metadados do ECS ou metadados de instância do EC2 :

$client = new MongoDB\Client(
'mongodb://<hostname>:<port>',
['authMechanism' => 'MONGODB-AWS'],
);
$uri = 'mongodb://<hostname>:<port>/?authMechanism=MONGODB-AWS';
$client = new MongoDB\Client($uri);

Para saber mais sobre como autenticar com Amazon Web Services obtendo credenciais externas, consulte as seguintes seções no guia de Autenticação:

O código a seguir mostra como habilitar o TLS para a conexão com sua instância do MongoDB :

$client = new MongoDB\Client(
'mongodb://<hostname>:<port>/',
['tls' => true],
);
$uri = 'mongodb://<hostname>:<port>/?tls=true';
$client = new MongoDB\Client($uri);

Para saber mais sobre como habilitar o TLS, consulte Habilitar TLS no guia Configuração do TLS.

O código a seguir mostra como especificar o caminho do arquivo CA para a conexão com a instância do MongoDB :

$client = new MongoDB\Client(
'mongodb://<hostname>:<port>/',
['tls' => true, 'tlsCAFile' => '/path/to/ca.pem'],
);
$uri = 'mongodb://<hostname>:<port>/?tls=true&tlsCAFile=/path/to/ca.pem';
$client = new MongoDB\Client($uri);

Para saber mais sobre como especificar um arquivo CA, consulte Especificar um arquivo CA no guia de configuração TLS.

O seguinte código mostra como impedir que o driver entre em contato com o endpoint OCSP:

$client = new MongoDB\Client(
'mongodb://<hostname>:<port>/',
['tls' => true, 'tlsDisableOCSPEndpointCheck' => true],
);
$uri = 'mongodb://<hostname>:<port>/?tls=true&tlsDisableOCSPEndpointCheck=true';
$client = new MongoDB\Client($uri);

Para saber mais sobre como desativar as verificações OCSP, consulte OCSP no guia de configuração do TLS.

O seguinte código mostra como instruir o driver a verificar o certificado do servidor em relação a uma CRL:

$client = new MongoDB\Client(
'mongodb://<hostname>:<port>/',
['tls' => true],
['crl_file' => '/path/to/file.pem'],
);

Para saber mais sobre como especificar uma CRL, consulte Lista de revogação de certificados no guia de configuração do TLS.

O seguinte código mostra como especificar o certificado do cliente que o driver apresenta para sua implantação MongoDB :

$client = new MongoDB\Client(
'mongodb://<hostname>:<port>/',
['tls' => true, 'tlsCertificateKeyFile' => '/path/to/client.pem'],
);
$uri = 'mongodb://<hostname>:<port>/?tls=true&tlsCertificateKeyFile=/path/to/client.pem';
$client = new MongoDB\Client($uri);

Para saber mais sobre como especificar um certificado de cliente , consulte Apresentar um certificado de cliente no guia de configuração do TLS.

O seguinte código mostra como especificar a senha do seu certificado de cliente :

$client = new MongoDB\Client(
'mongodb://<hostname>:<port>/',
[
'tls' => true,
'tlsCertificateKeyFile' => '/path/to/client.pem',
'tlsCertificateKeyFilePassword' => '<password>',
],
);
$uri = 'mongodb://<hostname>:<port>/?tls=true&tlsCertificateKeyFile=/path/to/client.pem&tlsCertificateKeyFilePassword=<password>';
$client = new MongoDB\Client($uri);

Importante

Ao substituir o <password> espaço reservado no URI de conexão, certifique-se de codificar o valor por cento.

Para saber mais sobre como fornecer uma senha de arquivo de chave, consulte Fornecer uma senha de chave no guia Configuração TLS.

O código a seguir mostra como relaxar as restrições de TLS, que tem o mesmo efeito que desabilitar a validação do certificado e a verificação do nome do host:

$client = new MongoDB\Client(
'mongodb://<hostname>:<port>/',
['tls' => true, 'tlsInsecure' => true],
);
$uri = 'mongodb://<hostname>:<port>/?tls=true&tlsInsecure=true';
$client = new MongoDB\Client($uri);

Para saber mais sobre como permitir TLS inseguro, consulte Permitir TLS Inseguro no guia Configuração de TLS.

Aviso

Definir a opção tlsInsecure como true pode expor seu aplicação a riscos de segurança. A ativação dessa opção torna seu aplicação desprotegido e potencialmente vulnerável a certificados expirados e a processos externos que se apresentam como instâncias de cliente válidas.

O seguinte código mostra como desabilitar a validação do certificado:

$client = new MongoDB\Client(
'mongodb://<hostname>:<port>/',
['tls' => true, 'tlsAllowInvalidCertificates' => true],
);
$uri = 'mongodb://<hostname>:<port>/?tls=true&tlsAllowInvalidCertificates=true';
$client = new MongoDB\Client($uri);

Para saber mais sobre como desativar a validação do certificado, consulte Permitir TLS inseguro no guia Configuração de TLS.

O seguinte código mostra como desabilitar a verificação de nome de host:

$client = new MongoDB\Client(
'mongodb://<hostname>:<port>/',
['tls' => true, 'tlsAllowInvalidHostnames' => true],
);
$uri = 'mongodb://<hostname>:<port>/?tls=true&tlsAllowInvalidHostnames=true';
$client = new MongoDB\Client($uri);

Para saber mais sobre como desativar a verificação de nome de host, consulte Permitir TLS inseguro no guia Configuração de TLS.

Voltar

Exploração madeireira