Empezaré por la parte de la pregunta que tiene respuesta. No es posible deshabilitar los botones del navegador, pero sí ocultarlos. Para ello tan sólo tienes que abrir tu página en una ventana nueva, mediante este código Javascript:
nuevaVentana=window.open('mipagina.html','MiPagina','toolbar=no,hotkeys=no');
Esto oculta la barra de botones (al abrir una ventana nueva se oculta por defecto, así que es toolbar=no es redundante) y deshabilita la mayor parte de las teclas de acceso directo. Para ver más posibilidades en cuanto al tercer argumento de window. Open() (abrir una ventana con/sin barras de scroll, abrirla de un tamaño determinado...) consulta la dirección:
http://developer.netscape.com/docs/manuals/js/client/jsref/window.htmCon respecto a la ocultación del código: es imposible. Puedes intentar protegerte por varios medios, de menor a mayor complejidad, pero todos tienen fallos:
a) Inserta una gran cantidad de saltos de línea al principio del código. Si el que intenta mirar las fuentes tiene un CI inferior a la media, puede funcionar.
b) Carga tu página desde un frameset con un solo frame. Al ver el código, sólo saldrá el HTML del frameset, muy poco interesante... hasta que se descubre el SRC del frame. Entonces se dispone del URL completo de tu página, que se puede teclear en una ventana normal de navegador para extraer después el código.
c) Abre tu página en una ventana nueva sin barras de menú ni botones, como en el ejemplo del principio. Nadie puede impedir ver el código de la página de origen, averiguar el URL (que estará en el window. Open()) y teclearlo a mano en una ventana normal...
d) Añade a eso algunos scripts de protección para que no salga el menú contextual. Suelen ser bastante complejos, y, según versiones, pueden impedir que tu página se vea bien en algunos navegadores. Aquí tienes un enlace a un script que te permite "personalizar" el menú contextual (puedes no ponerle nada), pero sólo funciona en IE5:
http://www.dynamicdrive.com/dynamicindex1/contextmenu.htme) Ofusca el código. Hazlo ilegible. El problema es que será también ilegible para ti, y te resultará muy complicado hacer cambios. Además, cualquiera con suficiente tiempo/paciencia podrá poner en limpio lo que tú ofuscaste... Esto puede conseguirse automáticamente con herramientas llamadas "compresores de HTML". Busca "HTML compressor" en Google para obtener algunos enlaces.
f) Sirve tus páginas desde un programa CGI. Esto es complicadísimo de mantener (requiere que todos los enlaces internos sean llamadas al CGI con argumentos apropiados) y requiere acceso al servidor (y saber programar en Perl...) Esta técnica sólo sirve para intentar ocultar la URL real de tus páginas, pero el código siempre estará visible una vez cargadas, so pena de que emplees todas las técnicas anteriores (que, como has visto, tampoco son 100% seguras).
En última instancia, cualquiera con básicos conocimientos del protocolo HTTP puede hacer un telnet al puerto 80 de tu servidor y sacar el código "a pelo". En definitiva, no puedes evitarlo. Ni siquiera Microsoft lo ha podido evitar...
Mira la pregunta 442 de irt.org (
http://developer.irt.org/script/442.htm) para una respuesta más breve (y más contundente) a este respecto. La dirección
http://www.faqts.com/knowledge_base/view.phtml/aid/2617/fid/126 contesta una pregunta similar, centrada en el código Javascript.