2010-09-29 21 views
20

Me gustaría mostrar la imagen desde una cámara de red en mi página web, pero la imagen está detrás de un servidor de autenticación básica HTTP.Cómo configurar la etiqueta <img> con autenticación básica

En Firefox y Chrome que puedo hacer esto:

<img width="320" height="200" src="http://username:[email protected]/Path" /> 

Pero en Internet Explorer 8, me sale un cuadro de imagen vacía. Si utilizo JQuery para establecer el atributo src, IE8 muestra un src en blanco. Parece que IE8 está comprobando la cadena y rechazándola.

¿Hay alguna manera de poner las credenciales de autenticación básicas en la etiqueta img?

+2

¿No sería inseguro hacer eso? La etiqueta es visible para todos. – Ruel

+1

Antes de que el usuario pueda acceder a este archivo HTML, deberá acceder a una página de inicio de sesión. – Robert

+0

Lo entiendo, pensé que funcionaría, el usuario visitará la página, para iniciar sesión. lol. – Ruel

Respuesta

4

En pocas palabras: No todos los navegadores permiten esto. Puede funcionar en algunos pero no en otros.

Pero, como alguien más ya ha dicho, no es muy seguro: está dando efectivamente los datos de inicio de sesión y la contraseña a cualquier persona que navegue por la página. No está bien.

Una mejor opción sería proxy a través del mismo servidor que está proporcionando el código html, entonces el href en la etiqueta <img> podría ser simplemente una URL local, y nadie necesita saber dónde está la imagen en realidad procedente de.

+0

"No todos los navegadores lo permiten. Puede funcionar en algunos pero no en otros". ¿Puedes citar tu fuente? – Robert

+1

@Robert - sin fuente; solo experiencia; Tuve una frustración similar a ti hace un tiempo, intentando algo muy similar. :) Pero dicho esto, puedo estar desactualizado ya que no he intentado hacer este tipo de cosas desde hace un tiempo, debido a mi otro punto; es decir, no es muy seguro. – Spudley

+0

también, para aclarar: hay una diferencia en cómo los navegadores lo tratarán si ingresa 'nombre: contraseña @ servidor/ruta' en la barra de direcciones, frente a si está en un enlace.Debido a que las contraseñas están involucradas, la política de seguridad del navegador entra en juego. – Spudley

1

Puede cargar su img con AJAX, usando XMLHttpRequest. Como debe saber, XMLHttpRequest tiene un método setRequestHeaders, por lo que podrá manipular los encabezados para su solicitud, por lo tanto, podrá realizar la autenticación HTTP básica.

+1

Puede pasar información de autenticación en '' open() '. Desgraciadamente, extraer el contenido binario de una respuesta e inyectarlo en un nodo de imagen en la página no es tan fácil. – bobince

+1

¿Puedes dar un ejemplo? –

1

La mejor manera es crear una página de inicio de sesión, luego configurar el enrutamiento de puertos en su enrutador para mostrar la cámara. ¿La cámara viene con software web?

0

Ver http://support.microsoft.com/kb/834489 y http://msdn.microsoft.com/en-us/library/ie/ee330735(v=vs.85).aspx#login_creds_urls

Para resumir, los nombres de usuario/contraseñas no se admiten formalmente bajo los esquemas de protocolo HTTP/HTTPS y debido a su uso en ataques de phishing, fueron desactivadas en IE6 en XPSP2. El usuario puede volver a habilitar la compatibilidad de forma manual utilizando una anulación de registro (FEATURE_HTTP_USERNAME_PASSWORD_DISABLE), pero esto no es recomendable.

Cuestiones relacionadas