2010-09-29 5 views
20

Desidero visualizzare l'immagine da una telecamera di rete sulla mia pagina Web, ma l'immagine è dietro un server di autenticazione di base HTTP.Come impostare il tag <img> con l'autenticazione di base

In Firefox e Chrome posso fare questo:

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

Ma in Internet Explorer 8, ottengo una scatola di un'immagine vuota. Se utilizzo JQuery per impostare l'attributo src, IE8 visualizza un src vuoto. Sembra che IE8 stia controllando la stringa e rifiutandola.

C'è un modo per inserire le credenziali di autenticazione di base nel tag img?

+2

Non sarebbe pericoloso farlo? Il tag è visibile a tutti. – Ruel

+1

Prima che l'utente possa accedere a questo file HTML, dovrà passare attraverso una pagina di accesso. – Robert

+0

Ho capito, ho pensato che funzionasse, l'utente visiterà la pagina, per accedere. lol. – Ruel

risposta

4

Bottom line: non tutti i browser lo consentono. Potrebbe funzionare in alcuni ma non in altri.

Ma come già detto da qualcun altro, non è molto sicuro: stai effettivamente fornendo i dettagli di login e password a chiunque sfogli la pagina. Non bene.

Una soluzione migliore sarebbe procura attraverso lo stesso server che si sta fornendo il codice html da, poi la href nel tag <img> potrebbe essere solo un'URL locale, e nessuno deve sapere dove l'immagine è in realtà proveniente da.

+0

"Non tutti i browser lo consentono. Può funzionare in alcuni ma non in altri". Puoi citare la tua fonte? – Robert

+1

@Robert - nessuna fonte; solo esperienza; Ho avuto una frustrazione simile a te qualche tempo fa, provando qualcosa di molto simile. :) Ma detto questo, potrei non essere aggiornato perché in realtà non ho provato a fare questo genere di cose per un bel po ', a causa del mio altro punto; cioè non è molto sicuro. – Spudley

+0

inoltre, per chiarire: c'è una differenza nel modo in cui i browser lo tratteranno se inserisci 'nome: password @ server/percorso' nella barra degli indirizzi, vs se è in un collegamento.Poiché le password sono coinvolte, la politica di sicurezza del browser entra in gioco. – Spudley

1

È possibile caricare il img con AJAX, utilizzando XMLHttpRequest. Come probabilmente saprai, XMLHttpRequest ha un metodo setRequestHeaders, quindi sarai in grado di manipolare le intestazioni per la tua richiesta, quindi, sarai in grado di fare l'autenticazione HTTP di base.

+1

È possibile passare informazioni di autorizzazione nei parametri a 'open()'. Sfortunatamente estrarre il contenuto binario di una risposta e iniettarlo in un nodo immagine sulla pagina non è così facile. – bobince

+1

Puoi fornire un esempio? –

1

Il modo migliore è creare una pagina di accesso, quindi configurare il port forwarding sul router per visualizzare la telecamera. La fotocamera è dotata di software web?

0

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

Per farla breve, i nomi utente/password non sono formalmente supportate sotto gli HTTP/HTTPS schemi di protocollo e per il loro utilizzo in attacchi di phishing, sono stati disabilitati in IE6 su XPSP2. Il supporto può essere riattivato manualmente dall'utente utilizzando un override del registro (FEATURE_HTTP_USERNAME_PASSWORD_DISABLE) ma ciò non è consigliato.

Problemi correlati