VPN connectat però contingut mixt encara bloquejat: què cal corregir
Ordena l’URL bloquejada segons qui l’ha produïda, repara la referència o passa-la al propietari de l’amfitrió, i després confirma la correcció des de la consola del navegador.
La meitat de la pàgina es renderitza, un full d’estil queda en gris al tauler Xarxa, i el client VPN continua informant d’un túnel sa. Les tres observacions són certes alhora, perquè el navegador va jutjar una petició que feia la pàgina i el túnel no hi tenia cap vot en aquell judici. El que tanca el cas és una decisió i no un paràmetre: reparar la referència, escalar-la a qui posseeix l’amfitrió, o abandonar la dependència. Cadascuna d’aquestes opcions té una prova barata, i triar la dolenta crema un cicle de suport.
Per què el túnel no pot cobrir un subrecurs
El contingut mixt comença amb un document HTTPS que demana un subrecurs per HTTP simple. Cada URL es jutja segons el seu propi esquema, així que la protecció del document pare mai s’estén a una petició filla. El xifratge afegit sota el navegador canvia què viatja pel cable, no l’http:// que demanava el marcatge.
Els navegadors actuals classifiquen aquestes peticions en dos grups i les tracten de manera diferent. Els scripts, fulls d’estil, iframes i crides amb fetch, XMLHttpRequest o WebSocket es rebutgen de ple, sense cap intent d’actualització previ. Les imatges, l’àudio i el vídeo es reescriuen a https:// i es tornen a demanar, i la càrrega s’abandona quan falla aquesta obtenció segura. Una URL de subrecurs l’amfitrió de la qual és una adreça IP nua queda exempta de l’actualització, així que una imatge HTTP en un amfitrió IP continua bloquejada en lloc de ser reparada en silenci. La divisió, inclosa aquesta excepció al costat actualitzable, està documentada a la guia de Mozilla sobre contingut mixt. Chrome aplica un rebuig semblant a les baixades no segures iniciades des d’una pàgina segura, i per això un enllaç PDF pot morir mentre la pàgina del voltant sembla intacta.
La fila en gris és, doncs, la prova que el control funciona, no la prova que el túnel hagi filtrat text en clar. Tracta la fila com una troballa que assenyala una sola referència i no tota la pàgina.
Decidir a qui pertany la referència no segura
Ordena l’URL incriminada segons on es produeix abans de modificar res. Aquesta resposta decideix si pots publicar una correcció avui, si un proveïdor n’ha de publicar una, o si la dependència ha de deixar la pàgina. Llegeix-la a la columna Iniciador del tauler Xarxa, perquè el marcatge de la pantalla sovint es munta en temps d’execució.
| D’on ve l’URL | Qui la pot corregir | Primer pas |
|---|---|---|
| Codificada a mà en una plantilla o un parcial que desplegues | Tu | Substitueix-la per la forma https:// i buida la memòria cau |
| Injectada per un gestor d’etiquetes o un paquet de proveïdor | El proveïdor, amb el teu tiquet | Envia l’URL exacta, el tipus de petició i la línia de consola |
| Servida només al port 80 sense oient TLS | El propietari de l’amfitrió | Demana TLS, posa-hi al davant alguna cosa que gestionis tu, o abandona-la |
Quan l’amfitrió ja respon al 443 i només la referència diu http, la reparació és local: canvia la referència, buida la memòria cau de la pàgina i confirma que la fila es torna https. Un amfitrió que només escolta al port 80 no es pot posar en regla editant-lo, així que el recurs es mou, es posa darrere d’alguna cosa que controleu, o desapareix. Una URL injectada per un gestor d’etiquetes continua apareixent fins i tot quan la teva plantilla és neta, i aquest cas pertany a un tiquet amb l’URL exacta i la línia de consola adjuntes. Dir al personal que permeti contingut no segur no és cap d’aquestes opcions, perquè desactiva el control per a cada lloc que visita aquest perfil de navegador.
Reparar la referència en lloc del paràmetre del navegador
Recarrega el flux que falla conservant el registre de xarxa i filtra el tauler per l’amfitrió que sospites. La consola anomena l’URL i la directiva, cosa que resol si una petició es va rebutjar o es va actualitzar abans que toquis una plantilla.
curl -sSI https://cdn.example.org/vendor.js | head -n 1
curl -sS -o /dev/null -w '%{http_code} %{url_effective}\n' -L https://cdn.example.org/vendor.jsDos controls de suport val la pena conèixer-los, i cap dels dos substitueix la reparació. Una capçalera Content-Security-Policy amb upgrade-insecure-requests fa que el navegador reescrigui les URL de subrecurs http abans que surtin de la pàgina, cosa que atrapa referències antigues que encara no has trobat. La petició reescrita encara falla quan l’amfitrió de destinació no serveix HTTPS, així que la capçalera només canvia quina URL prova el navegador. HSTS s’aplica per amfitrió, cosa que vol dir que una política al teu domini no fa res per un CDN de tercers que mai no va enviar la capçalera. Després d’una modificació de plantilla buida la memòria cau i busca el nom d’amfitrió antic a l’HTML renderitzat, perquè la mateixa URL també pot arribar per un parcial, una cadena de traducció o un camp de base de dades.
Segueix també les redireccions, perquè una cadena que comença a https:// pot aterrar en una ubicació http:// i el navegador jutja l’últim salt. La -L forma de la segona ordre anterior imprimeix aquesta URL efectiva per a tu. Si l’últim salt és http pur, la referència continua sent incorrecta encara que l’enllaç que has editat semblés bé.
Confirmar la pàgina amb la consola i el tauler Xarxa
Recarrega amb la memòria cau desactivada i torna a recórrer el flux, inclosos els botons que carreguen contingut a demanda. Una primera càrrega de pàgina amaga ginys mandrosos, rajoles de mapa i scripts de reproductor que només apareixen després d’un clic. La consola no hauria de portar cap entrada de contingut mixt i cada fila que hagis tocat hauria de mostrar https. Captura la consola i la fila de petició abans de tancar el tiquet, perquè aquest estat és difícil de reconstruir després del desplegament següent.
Quan el recurs és d’una altra persona, envia quatre coses: l’URL exacta, el tipus de petició, el text de la consola i la pàgina on apareix. Oculta els identificadors de sessió a tot el que enganxis en un tiquet. Un informe que només diu que les imatges estan trencades no dona res a buscar al propietari.
El túnel continua fent la seva feina mentre la correcció viu a la referència que va produir la petició. Busca el nom d’amfitrió una vegada més a la plantilla i al paquet del proveïdor després del desplegament, i tanca el cas només quan no quedi cap entrada de contingut mixt bloquejada a la consola.