Desabilitar o menu contextual do navegador com Javascript

Um script em Javascript para evitar que funcione o menu contextual do navegador, que sai ao clicar com o botão direito do mouse sobre a página. De modo que não possam ver o código fonte nem acessar a outras opções parecidas.

Por Miguel Angel Alvarez - Tradução de JML


Publicado em: 23/1/06
Valorize este artigo:
Neste artigo vamos mostrar um método para desabilitar o menu contextual do navegador, que aparece clicando com o botão direito em qualquer área da página. Assim, podemos evitar que o usuário tenha acesso a algumas das opções do navegador, como ver o código fonte.

A primeira coisa que queremos destacar é que este exemplo não protege o código das páginas web que estamos publicando. Simplesmente coloca algumas travas para ver como fizemos a página, mas qualquer usuário espertinho poderá acessar ao código da página se realmente quiser.

Para começar, na barra de menus do navegador, em "exibir - código fonte", pode-se acessar também ao código fonte das páginas. Portanto, se desejarmos que não seja visto nosso código, teremos que mostrar a página em uma nova janela do navegador, que devemos abrir mediante Javascript para que não inclua as barras de menus.

Mesmo se conseguíssemos evitar mostrar a barra de menus e o menu contextual, um usuário ainda poderia desabilitar Javascript para tentar ver o menu contextual sem que a página o empeça.

Porém, devemos saber que quando se envia uma página a um visitante, o arquivo HTML é salvo no disco rígido local desse usuário, então em último caso, a pessoa interessada simplesmente tem que acessar seus arquivos temporários da Internet para localizar a página que tem o código que deseja visualizar. Como o arquivo está fisicamente em seu computador, poderá fazer o que desejar com ele: abrir, modificar, salvar com outro nome, etc. Portanto nossos códigos nunca estarão totalmente seguros.

Nota: A melhor solução para proteger um código é escrevê-lo no lado do servidor, com linguagens como ASP ou PHP. Ao estar no lado do servidor, os scripts se executarão no servidor e o visitante só receberá o código gerado dessa execução, no próprio código ASP ou PHP.

Portanto, não pode ser feito nada definitivo para ocultar um código que se executa no cliente, portanto esta solução proposta é só um detalhe que pode entorpecer a captura de um código, mas não serve para protege-lo definitivamente.

Sendo assim, o código que vamos a propor é muito mais simples do que se pode pensar. Simplesmente utilizaremos um evento de Javascript que se chama "oncontextmenu" e depende de "document". Atribuiremos uma função a este evento, que se executará no momento em que o usuário clique o botão direito para visualizar o menu contextual.

A função que vamos atribuir a este evento é a seguinte:

function desabilitar(){
    alert ("Esta função está desabilitada.\n\nDesculpem as moléstias.")
    return false
}

A função mostra uma mensagem de advertência, mas observemos o return false: é necessário para que não chegue a mostrar o menu contextual, porque se não colocarmos, se mostraria a mensagem de alerta mas em seguida se mostraria também o menu contextual, com o qual não serviria para nada o script.

Para atribuir esta função ao evento oncontextmenu, realizamos este código:

document.oncontextmenu=desabilitar

Tão simples como isso. O script completo, que colocaríamos entre <head> e </head> ficaria assim:

<script language=JavaScript>
<!--

function desabilitar(){
    alert ("Esta função está desabilitada.\n\nDesculpem as moléstias.")
    return false
}

document.oncontextmenu=desabilitar

// -->
</script>

Podemos ver o exemplo em funcionamento em uma página a parte.





Comentários do artigo
Foram enviados 7 comentários ao artigo
7 comentários não revisados
0 comentários revisados

Usuários :    login / registro

Manuais relacionados
Categorias relacionadas
O autor

Home | Sobre nós | Copyright | Anuncie | Entrar em contato