MDN may have intermittent access issues April 18 13:00 - April 19 01:00 UTC. See whistlepig.mozilla.org for all notifications.

mozilla
Os seus resultados da pesquisa

    Usando privilégios expandidos em navegadores Mozilla

    Navegadores Mozilla dispõem de funções para segurança em Javascript similares às usadas para segurança em Java e Javascript no Netscape Communicator 4.x.

    Em casos mais simples, o código pede permissão para habilitar o privilégio que possibilita o acesso ao alvo através de scripts. Por exemplo:

    netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
    
    //ou: 
    
    netscape.security.PrivilegeManager.enablePrivilege("UniversalPreferencesRead UniversalFileRead");
    

    Quando este método é invocado, se a assinatura for válida (caso seja um script assinado) ou codebase principal esteja habilitado, os privilégios expandidos são concedidos. Caso o acesso não seja por meio de uma destas formas, por exemplo, utilizando um arquivo local através da url file://, será exibida uma caixa de diálogo perguntando se o usuário permite que o script use estes privilégios e também se deseja memorizar esta decisão. Note que no segundo exemplo o script solicita dois privilégios, porém exibe apenas uma caixa de diálogo descrevendo-os.

    Os privilégios são concedidos apenas no escopo da função que os solicitou. Este escopo inclui as funções chamadas por esta função. Quando a função termina, os privilégios não são mais aplicáveis.

    Exemplo

    A função b solicita privilégios expandidos, e somente comandos e funções chamados no escopo da mesma após a solicitação têm privilégios concedidos. É uma boa prática habilitar privilégios somente quando necessário, e após o uso desabilitá-los. Isso ajuda a proteger o computador do usuário de seções perigosas no código.

    function mostraPrivilegios(i) {
      try{
        if (history[0] != "") {
    	  document.write(i + ": habilitado<br>");
    	}
      } catch (e) {
        document.write(i + ": desabilitado<br>");
      }
    }
    
    function a() {
      mostraPrivilegios(5);
    }
    
    function b() {
      mostraPrivilegios(3);
      netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
      mostraPrivilegios(4);
      a();
      mostraPrivilegios(6);
    }
    
    function c() {
      mostraPrivilegios(2);
      b();
      mostraPrivilegios(7);
    }
    
    mostraPrivilegios(1);
    c();
    mostraPrivilegios(8);
    

    Este exemplo exibe o seguinte resultado:

    1: desabilitado
    2: desabilitado
    3: desabilitado
    4: habilitado
    5: habilitado
    6: habilitado
    7: desabilitado
    8: desabilitado
    

    Privilégios

    UniversalBrowserRead
    Leitura de dados sensíveis do browser. Isto permite que o certificado passe a verificação da mesma origem ao ler de qualquer documento.
    UniversalBrowserWrite
    Modificação de dados sensíveis do browser. Isto permite que o certificado passe a verificação da mesma origem ao escrever em qualquer documento.
    UniversalXPConnect
    Acesso irrestrito às APIs do browser usando XPConnect.
    UniversalPreferencesRead
    Ler preferências usando o método navigator.preference.
    UniversalPreferencesWrite
    Ajustar preferências usando o método navigator.preference.
    CapabilityPreferencesAccess
    Ler e ajustar as preferências que definem políticas de segurança, incluindo que privilégios foram concedidos e negados aos scripts. Você também necessita de UniversalPreferencesRead e UniversalPreferencesWrite.
    UniversalFileRead
    Uso do método window.open com URLs file:// e permite que o browser faça upload de arquivos usando <input type="file">.

    Nota: Este artigo, bem como seu exemplo, foi baseado no artigo Signed Scripts in Mozilla, porém, conta com atualizações para conformidade no uso de navegadores atuais.

    Informações Sobre o Documento Original

    Categorias

    Interwiki Language Links

    Etiquetas do documento e colaboradores

    Contributors to this page: Verruckt, Leandro Mercês Xavier
    Última atualização por: Leandro Mercês Xavier,