Proteja a privacidade do usuário

Os usuários não instalarão uma extensão se ela comprometer a privacidade deles ou solicitar mais permissões necessários. As solicitações de permissão precisam fazer sentido para os usuários e ser limitadas às informações necessárias para implementar a extensão. Extensões que coletam ou transmitem dados do usuário precisam obedecer às Políticas de Privacidade de dados do usuário .

Proteja e respeite os usuários da extensão, incluindo essas precauções para manter a identidade segura. Lembre-se: quanto menos dados uma extensão pode acessar, menos dados ela pode vazar acidentalmente.

Reduzir as permissões necessárias

As APIs que uma extensão pode acessar são especificadas no campo de permissões do manifesto. A mais permissões concedidas, mais caminhos um invasor terá para interceptar informações. Somente as APIs uma extensão depende de uma extensão deve ser listada, e é importante considerar as opções . Quanto menos permissões uma extensão solicitar, menos avisos de permissão serão mostrados para uma usuário. É mais provável que os usuários instalem uma extensão com avisos limitados.

As extensões não podem ser prontas para o futuro acesso a dados do usuário solicitando permissões que eles não necessárias no momento, mas que podem ser implementadas no futuro. Incluir novas permissões com atualizações de extensão e considere torná-las opcionais.

activeTab

As extensões que usam permissões de host para injetar scripts geralmente podem substituir activeTab. A permissão activeTab concederá a uma extensão acesso temporário à guia ativa no momento, somente quando o usuário invoca a extensão. O acesso é interrompido quando o usuário sai da página fecha a guia atual. Ele é uma alternativa para muitos usos do <all_urls>.

{
  "name": "Very Secure Extension",
  "version": "1.0",
  "description": "Example of a Secure Extension",
  "permissions": ["activeTab"],
  "manifest_version": 2
}

A permissão ActiveTab não exibe mensagens de aviso durante a instalação.

Ativar as permissões opcionais

Permita que os usuários escolham quais recursos e permissões precisam de uma extensão, incluindo permissões opcionais. Se um recurso não for essencial para a funcionalidade principal de uma extensão, torná-lo opcional e mover a API ou o domínio para o campo optional_permissions.

{
  "name": "Very Secure Extension",
  ...
  "optional_permissions": [ "tabs", "https://www.google.com/" ],
  ...
}

A inclusão de permissões opcionais permite que uma extensão explique por que precisa de uma permissão específica quando o usuário ativa o recurso relevante. A extensão pode oferecer ao usuário a opção de ativar atributos de machine learning.

Captura de tela de um pop-up solicitando a ativação de permissões

Clicar em OK! aciona o evento a seguir no script de segundo plano.

document.querySelector('#button').addEventListener('click', function(event) {
  // Permissions must be requested from inside a user gesture, like a button's
  // click handler.
  chrome.permissions.request({
    permissions: ['tabs'],
    origins: ['https://www.google.com/']
  }, function(granted) {
    // The callback argument will be true if the user granted the permissions.
    if (granted) {
      // doSomething();
    } else {
      // doSomethingElse();
    }
  });
});

O usuário receberá a seguinte solicitação:

Captura de tela da solicitação de permissões opcionais.

Permissões opcionais também podem ser implementadas em uma atualização de extensão. Isso fará com que o novo está disponível para os usuários sem desativar a extensão, como pode acontecer ao atualizar para a as permissões necessárias.

Limitar e proteger as informações dos usuários

Solicite apenas os dados do usuário mínimos necessários para uma extensão. Quanto menos informações uma extensão pedir de um usuário significa menos exposição se a extensão estiver comprometida.

Todos os dados de usuário solicitados devem ser tratados com cuidado. Armazene e recupere dados em um servidor seguro com um domínio registrado. Sempre use HTTPS para se conectar e evite manter dados confidenciais do usuário no cliente. de uma extensão, já que o armazenamento não é criptografado.