2010-06-22 2 views
6

C'è qualche metodo per dire da javascript se il browser ha abilitato la "configurazione di sicurezza avanzata"?È possibile rilevare la sicurezza avanzata di Internet Explorer in javascript?

Continuo a riscontrare problemi con determinati controlli che non funzionano da contenuti caricati in modo dinamico. Ciò accade solo con i browser in esecuzione sui sistemi Windows Server 2003/2008, anche quando aggiungo il server alla zona "trusted".

Forse qualcuno ha già sviluppato un metodo per eseguire questo compito?

Grazie in anticipo

risposta

0

penso che si può cercare SV1 nel user agent string.

+0

Purtroppo questo non fa il trucco. Secondo Microsoft: http://msdn.microsoft.com/en-us/library/ms537503%28VS.85%29.aspx la stringa "SV1" viene utilizzato solo da Internet Explorer 6. Un test rapido su alcune macchine sembrano confermare questo. –

1

Non penso sia possibile, e se lo è ancora, allora si tratta di un bug che potrebbe essere risolto prima o poi.

Uno dei punti principali di questa "extra sicurezza" era che il client lo avesse ma non fosse rilevato dai server, lasciando così loro modo di sapere quando tentare di aggirarlo e quando no.

+0

Penso che sia possibile rilevare facilmente i sintomi (script/activeX disabilitati), almeno * dopo * la prima richiesta. Non penso che questo sia un bug. –

1

Non javascript disabilitato quando si utilizza la configurazione di sicurezza avanzata?

Quindi, se si desidera visualizzare un messaggio all'utente, è sufficiente visualizzare un messaggio in html normale e nasconderlo con javascript in modo che solo gli utenti senza javascript lo vedranno. Se devi gestirlo sul lato server (ad esempio, emettendo una versione diversa del tuo sito web), includi semplicemente javascript per reindirizzare gli utenti alla tua versione abilitata per javascript. Gli utenti senza javascript rimarranno sulla pagina non js.

Se solo ActiveX script sono disabilitati, lo stesso metodo si applica, è sufficiente inserire un ActiveX e cercare di "script" che, se non riesce è possibile reindirizzare, mostrare un messaggio ecc

Quanto sopra, ovviamente doesn' t rilevare la configurazione di sicurezza avanzata di per sé, ma i sintomi che si verificano quando è abilitato. Quindi probabilmente non sarebbe in grado di distinguere tra gli utenti che utilizzano la configurazione avanzata della sicurezza e gli utenti che semplicemente hanno disabilitato JS/ActiveX o utilizzano un browser che non supporta gli script in primo luogo.

1

Invece di testare direttamente per IE ESC, possiamo verificarne gli effetti.

Ho trovato che con ESC abilitato gli eventi onclick di contenuto aggiunto dinamicamente non si attivano. Quindi sto testando direttamente quegli eventi.

var IEESCEnabled = true; 
 
var testButton = $("<button style=\"display: none;\" onclick=\"IEESCEnabled = false; alert('No problems here.');\">Test IE ESC</button>"); 
 
testButton.click(); 
 
if (IEESCEnabled) { 
 
    alert("We have a problem."); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

Nella mia applicazione di un test come questo inoltra l'utente a una pagina che spiega loro emissione. È accompagnato da un elemento noscript per verificare che abbiano JavaScript in esecuzione.