Una solución realmente simple sería simplemente agregar una clave que pueda almacenarse en una cookie en la máquina de los usuarios. Esta no es una solución perfecta, ya que alguien podría obtener la clave, pero le brinda protección básica de que alguien tropiece con su sitio. Puede usar una url como http://www.yourdomain.com?access_key=random_string y luego agregar lo siguiente a su controlador de aplicación.
class ApplicationController < ActionController::Base
before_filter :check_redirect_key
def check_redirect_key
if request[:access_key] != 'random_string' && cookies[:access_key] != 'random_string'
redirect_to "/404.html"
elsif request[:access_key] == 'random_string'
cookies.permanent[:access_key] = 'random_string'
end
end
end
Este código comprobará la clave de acceso, ya sea en la dirección URL o una cookie en la máquina de los usuarios y hacerles en si existe en cualquier lugar. De esta forma, una vez que acceden al sitio con la clave, pueden acceder a la url directamente.
Si alguien vino aquí desde Google en busca de node.js, aquí hay un [enlace] (http://blog.modulus.io/nodejs-and-express-basic-authentication) – funroll