Sta bloccando un intero web-client a causa di una ragionevole richiesta di compatibilità?

1

Un po 'di storia, abbiamo creato un sistema POS elettronico per venditori registrati di articoli di una marca ben nota. I fornitori sono tenuti ad accedere per utilizzare il sistema.

Recentemente, IE ci ha causato molti dolorosi problemi di manutenzione rispetto a prima. Il nostro capo si sta preoccupando di incorrere in ulteriori problemi di manutenzione, quindi mi ha chiesto di trovare un modo per installare automaticamente & lanciare chrome se provano ad accedere con altri browser (per la cronaca, quasi tutti i problemi sono legati ad alcune funzionalità che funzionano bene su FF / Chrome / Opera / Safari ma non su IE).

Mettiamo da parte il ridicolo di eseguire un file .exe esterno da Javascript, che è praticamente impossibile (e giustamente, gliel'ho detto, ma ha insistito che era possibile, quindi qualunque cosa fosse).

Quindi le mie domande sono:

  • Questa richiesta è tecnicamente valida? Esiste un modo garantito per bloccare le richieste da tutti i browser ad eccezione di quelli consentiti?
  • Questa richiesta è ragionevole? IMO, dal punto di vista degli utenti, limitare l'accessibilità fa più male che bene, ma il problema di manutenzione è sicuramente un problema aziendale valido.
  • C'è mai stato un caso come questo in cui altri siti web hanno bloccato esplicitamente determinati browser?

Modifica: Grazie per le risposte. Al momento stiamo supportando IE 7+ e in effetti 7/8 sono stati quelli che hanno causato la maggior parte del dolore. Abbandonare quei due renderà la manutenzione molto più semplice ma il mio capo pensa che il problema abbia a che fare con IE stesso, non necessariamente con le versioni. Cercherò di vedere se riesco a convincerlo, ma ho la netta sensazione che continui a seguire quello che pensa.

    
posta l46kok 09.09.2013 - 16:16
fonte

6 risposte

11

Questa richiesta è tecnicamente valida?

No, non ultimo perché gli utenti tecnici saranno in grado di spoofare le richieste - che dicono che gli utenti che sono in grado o che aggirano le limitazioni hanno maggiori probabilità di utilizzare un browser che non causa problemi.

Questa richiesta è ragionevole?

Forse - ma mi riferisco alla mia precedente risposta, è improbabile che gli utenti che possono cambiare facilmente i loro browser siano quelli che stanno avendo problemi.

C'è mai stato un caso come questo in cui altri siti web hanno bloccato esplicitamente determinati browser?

Purtroppo sì, persiste ancora ed è molto irritante (una volta era genuinamente sulle funzionalità supportate, ma da IE9 questo è marginale). Chiamami peverse ma io mi piace IE - Lo uso da quando era in beta (a quel punto era molto meglio di netscape) - ma ugualmente uso IE9 / 10/11 e qui è dove le cose si divertono.

Per prima cosa devi essere chiaro su quale versione specifica di IE ti sta causando dolore - e perché. Se i suoi 6 e 7 allora sì, devi incoraggiare i tuoi utenti a usare qualcosa di meglio perché non è ragionevole averli a doverli supportare. 9 o meglio - poi c'è un caso per sostenere che i problemi devono essere risolti nel tuo (sostituendo il browser sniffing con rilevamento di capacità e polyfill appropriati) 8 ... 8 è il brutto caso limite. IE 11 non si segnala più come IE per cercare di fermare i siti che non hanno motivo di non lavorare decidendo che non vogliono giocare.

Hmm end rant.

La semplice risposta è definire le versioni di IE che non supportate e spiegare perché e quindi esprimerle chiaramente ai vostri utenti, ma dovreste supportare almeno 9 o meglio ...

    
risposta data 09.09.2013 - 18:52
fonte
4

Mentre il supporto termina nel gennaio 2014, considererei comunque Google Chrome Frame la soluzione migliore a questo problema. Non è "l'installazione e il lancio di Chrome", ma è il più vicino possibile mentre si è ancora al sicuro.

link

Fondamentalmente esegue Chrome all'interno di IE, non ha bisogno dell'accesso all'amministratore di sistema e può essere attivato per l'installazione (tramite un prompt) al caricamento della pagina.

Un'altra alternativa sarebbe quella di raggruppare la tua applicazione in un browser a sito singolo, usando qualcosa come TideSDK o Node-Webkit

Quindi potresti fare in modo che il tuo POS funzioni come app desktop su alcune piattaforme e limitare gli ambienti a cui dedica il tempo necessario.

    
risposta data 09.09.2013 - 19:57
fonte
3

Ho visto il codice di rilevamento del browser che tenta di accedere a varie cose in javascript / DOM e rilevare errori. In base ai particolari errori rilevati, il codice imposta quindi variabili globali che indicano quale tipo di browser è in uso e quindi le decisioni possono essere prese.

Invece di forzare l'installazione di chrome, potresti provare a dire ai clienti di abilitare la modalità di compatibilità in IE, con indicazioni chiare su come farlo. O forse (meglio) mettere l'attributo doctype giusto sul tag HTML stesso, che dovrebbe automaticamente far sì che IE entri nella giusta modalità. Fai una piccola ricerca sugli attributi di IE e doctype. (Non essendo snarky, sono troppo frettoloso in questo momento per farlo da solo, anche se ho avuto in passato.)

Aspetta, ecco qui:

link link

e qui:

link

(La ricerca è divertente!)

    
risposta data 09.09.2013 - 18:11
fonte
3

Non è possibile forzare un'installazione. Puoi bloccarli e amp; consigliamo vivamente di installare un nuovo browser ma non si può costringerli a fare nulla: farlo sarebbe un enorme buco di sicurezza in attesa di accadere.

Ancora più importante, se stai scrivendo un software aziendale, perché diavolo non stai mirando a IE ? Chrome & Firefox ha una grande penetrazione nel mercato dei sistemi di consumo, ma i sistemi aziendali sono ancora principalmente IE e, in molti casi, l'utente non può installare un nuovo browser, anche se lo desidera, ma non ha i permessi per farlo.

    
risposta data 09.09.2013 - 21:43
fonte
1

Il modo standard per identificare il browser client in uso è la stringa USER AGENT. Tuttavia, si sa che i browser web mentono e un principio generale di implementazione del server dovrebbe essere quello di non fidarsi mai del client con qualcosa. MAI.

Quindi, in risposta al punto uno, puoi essere sicuro al 100% di quale browser client viene utilizzato? No. Ma puoi fare ipotesi plausibili e convalidare quelle ipotesi passando javascript al client per testare quelle ipotesi.

Nel punto due. Come utente, se un sito Web eseguiva un programma diverso sulla mia macchina senza avviso, sarei estremamente infelice. Reindirizzare il browser Web a una pagina in cui si afferma che il sito Web non era compatibile con IE e suggerire che io punti chrome / firefox solleverebbe un sopracciglio, ma sarebbe semplicemente accettabile per me come utente.

Nel punto 3, Sì, ci sono stati, e ancora ci sono casi in cui i siti web e le applicazioni web non sono compatibili con alcuni browser web. forse 10 anni fa, era comune per i siti Web bancari bloccare i client con le stringhe degli agenti di FireFox User, così ho usato Firefox per inviare le stringhe di Explorer UA per quel sito. Più di recente, le nuove versioni di Explorer tendono a non funzionare su una vasta gamma di siti. (quindi la modalità di compatibilità in IE per consentirne il funzionamento mentre tutti aggiornano i loro siti Web).

Il problema è storicamente dovuto al fatto che Microsoft è stata piuttosto scarsa nell'attuazione degli standard. Ogni tentativo da parte di Microsoft di avvicinarsi agli standard rompe l'esperienza web, perché i siti web presentano pagine progettate per il vecchio browser danneggiato. In questi giorni, i problemi tendono ad avere più a che fare con l'api JavaScript per i bowers che variano.

    
risposta data 09.09.2013 - 16:30
fonte
0

Se io, come utente finale, utilizzo un browser ampiamente utilizzato senza utilizzare trucchi intelligenti, puoi rilevare quale browser sto utilizzando e il tuo codice server può bloccare facilmente il mio browser (visualizza un sito web che dice "per favore usa un browser diverso ").

Se rilevo che il tuo sito web non supporta il mio browser, e voglio usare il tuo sito web e non cambiare il mio browser, allora è probabile che io come utente finale, o qualcuno più intelligente di me, possa impostare il mio browser in modo che superi il tuo codice. Se diciamo che la versione 7 di IE che finge di essere Safari per iOS non funziona, direi che ho solo me stesso da incolpare; altri utenti potrebbero essere meno ragionevoli. Cercando di bloccare le persone che utilizzano browser non supportati mentre fingendo di essere diversi browser è IMO inutile.

Le versioni successive di Internet Explorer hanno una compatibilità molto migliore con altri browser e sono ampiamente utilizzate. Se il tuo capo decide di escludere tutte le versioni di Internet Explorer, immagino che riceverà dei reclami seri dai clienti. Questo è il suo problema (a meno che non sia così grave che il tuo stipendio non possa più essere pagato).

    
risposta data 20.06.2015 - 02:06
fonte

Leggi altre domande sui tag