Non sei certo il primo. Sfortunatamente molti ISP wireless hanno usato questo approccio grossolano e sgradito alla compressione. Viene da Bytemobile.
Quello che fa è avere un proxy ricomprimere tutte le immagini che si scaricano di dimensioni inferiori per impostazione predefinita (peggiorando notevolmente la qualità dell'immagine). Quindi inserisce crudamente uno script nel documento che aggiunge un'opzione per caricare l'immagine corretta per ogni immagine ricompressa. Sfortunatamente, dal momento che la sceneggiatura è un JS in stile anni '90 orribilmente scritto, esso fruga in tutto il tuo spazio dei nomi, dirotta i gestori degli eventi e ha un'alta probabilità di incasinare i tuoi script.
Non so come fermare l'iniezione stessa, a meno di utilizzare HTTPS. Ma quello che potresti fare è rilevare o sabotare lo script. Ad esempio, se si aggiunge uno script vicino alla fine del documento (tra il 1.2.3.4 sceneggiatura inclusione e il trigger di script in linea) per sterilizzare il gancio onload usa:
<script type="text/javascript">
bmi_SafeAddOnload= function() {};
</script>
allora lo script non avrebbe eseguito , quindi i tuoi eventi e DOM verrebbero lasciati in pace. D'altra parte, lo script iniziale avrebbe comunque disseminato il tuo spazio dei nomi con la posta indesiderata e qualsiasi problema di markup che causerà sarà ancora presente. Inoltre, l'utente sarà bloccato con le immagini ricompresse, incapace di ottenere gli originali.
Si potrebbe provare solo lasciando all'utente di sapere:
<script type="text/javascript">
if ('bmi_SafeAddOnload' in window) {
var el= document.createElement('div');
el.style.border= 'dashed red 2px';
el.appendChild(document.createTextNode(
'Warning. Your wireless ISP is using an image recompression system '+
'that will make pictures look worse and which may stop this site '+
'from working. There may be a way for you to disable this feature. '+
'Please see your internet provider account settings, or try '+
'using the HTTPS version of this site.'
));
document.body.insertBefore(el, document.body.firstChild);
}
</script>
Si tratta di un hosting gratuito o questo è il tuo hosting a pagamento? – infinity
Questa è una connessione a pagamento e l'hosting non è gratuito –
+1 Lo stesso problema con me. Utilizzo di Vodafone 3g in India. – shashwat