2011-03-24 16 views
5

Estoy trabajando en un widget de javascript que permitirá a los usuarios registrarse en una lista. Este widget se integrará en los sitios web de los clientes. Porque todo está dirigido por el cliente, menos las solicitudes de vuelta al servidor. He estado tratando de encontrar maneras de hacer que el widget sea "seguro" esencialmente para limitar el widget que se cargará solo en los sitios aprobados.Widget Security

Google Maps parece ser capaz de utilizar la clave que le proporcionan para realizar una búsqueda del sitio cargando el mapa. Algo en ese sentido sería perfecto.

Diseño de widgets: Javascript inserta HTML en DOM. También agrega un elemento iframe. El iframe carga el formulario de mi sitio para manejar las solicitudes. Se pasa una clave a iframe URL para cargar la configuración del formulario.

No busco realmente el código, el pseudo código es perfecto, simplemente se pierde en la técnica.

Respuesta

0

Su servidor web serviría los widgets a través de una solicitud GET, y esperaría que se pasara un parámetro key=xyz. Su servidor verificará que la clave sea válida antes de devolver la respuesta del widget.

El problema es que el cliente tendría que enviar la clave desde el JavaScript en su máquina del cliente. Por lo tanto, todos los clientes de sus clientes conocerán la clave del cliente. Esto significa que no es razonable esperar que sus clientes mantengan su clave en secreto.

Creo que Google Maps does asocia cada clave con un dominio. Si está integrando los widgets en un iframe, debería poder verificar el encabezado Referer para verificar que efectivamente esta solicitud provenga del sitio web del cliente y no de otro sitio web que haya robado la clave del cliente.

Parece bastante seguro (no sería posible que ningún otro sitio web aloje sus widgets sin pagar una clave). La única pregunta que queda es: ¿de qué sirve la clave? ¿Por qué no utilizar el Referer para autenticar los sitios que tienen permiso para acceder a los widgets y no hacerlos pasar por la molestia de proporcionar una clave? No puedo pensar en una razón por la que sea necesaria. Quizás alguien pueda pensarlo en los comentarios.

+0

Generar una clave a partir de los detalles del servidor y proporcionarla/generarla automáticamente como parte del código que agregan a sus sitios es buena cuando desea que las personas soliciten y utilicen el widget a través de interfaces automatizadas, etc. Entonces no tiene que Preocúpese demasiado por quién está utilizando el widget, sino que ha seguido los pasos correctos para poder usarlo. Por lo tanto, ¿puede capturar información adicional sobre los hosts inicialmente? – ddtpoison777

+0

Referer no se puede usar como una característica de seguridad, es un encabezado opcional y cada cliente puede manipularlo – CLod

+1

Correcto, el cliente puede manipular el encabezado Referer, pero no es posible que una página web cambie el encabezado Referer enviado por el navegador a un iframe incrustado. Dado que la pregunta es sobre cómo evitar que otros _sites_ incrusten el widget sin permiso, la comprobación del Referer debe ser segura. – mgiuca