Hola; yo utilizo esta función para evitar que la página sea cargada "directamente" (sólo permite que se abra si es llamada desde otra, no si se escribe su url o se clica en el historial):
<script>
if (!opener) cerrar()
</script>
y en mi archivo *.js tengo la función cerrar():
function cerrar() {
var ventana = window.self;
ventana.opener = window.self;
ventana.close();
}
Por cierto: el if (!opener)... lo pongo DENTRO del head de la página que quiero "proteger", ya que si la pones onload, primero la muestra y luego la cierra. De esta forma, la cierra en milisegundos
....
... hasta que alguien desactiva los scripts....