que online nodejs español devcenter authentication ruby-on-rails-3 heroku devise

authentication - online - heroku python



¿Cómo puedo mantener mi aplicación Heroku privada? (7)

Ahora también puede usar un complemento de Heroku que le permite especificar los correos electrónicos de los usuarios a los que se les permite acceder a una aplicación y que usa Persona (también conocido como BrowserID) para autenticar usuarios (no se necesita una contraseña específica del sitio).

¿Hay alguna manera de que pueda mantener mi aplicación completamente privada y solo dejar que los desarrolladores tengan acceso?

Cuando un usuario aleatorio ingresa la URL, debe ser algo así como una página en blanco, pero cuando los desarrolladores ingresan la URL, deben poder acceder a la aplicación.


Echa un vistazo a la gema de authlogic, en particular la característica Token de acceso único.

Puede devolver un 404 a cualquiera que no pase el token de acceso único apropiado como argumento.


Mi solución (también económica) (la aplicación Django que usa vistas basadas en clases) es usar SuperUserRequiredMixin en todas mis vistas basadas en clases como esta:

class BlogPostDetailView(SuperuserRequiredMixin, DetailView): template_name = "blogpost-detail.html" model = BlogPost

Agregar / eliminar esta mixin es mi manera de hacerlo.


Mi solución barata ha estado implementando un before_filter para solicitar una autenticación HTTP antes de que se ejecute cada acción.

Esta solución funciona bien a lo largo de otras capas de autenticación: Devise u otros.

USERS = { "user" => "secret" } before_filter :authenticate def authenticate authenticate_or_request_with_http_digest("Application") do |name| USERS[name] end end

Cada vez que otros pares aterrizan en yourdomain.heroku.com, se les solicita la autenticación HTTP, y luego otra autenticación si está implementada.



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 verificará la clave de acceso en la url o en una cookie en la máquina de los usuarios y los dejará entrar si existe en cualquier lugar. De esta forma, una vez que acceden al sitio con la clave, pueden acceder a la url directamente.