Caché de secuestro de nombres de dominio
En los últimos años, el secuestro de HTTP de los operadores no ha convergido, sino que se ha intensificado y se han utilizado nuevos trucos: como la interceptación de contraseñas mediante el secuestro de HTTP, como el reemplazo del software descargado; (Por supuesto, el reembolso no se le devuelve).
Este artículo presenta un medio técnico para evitar el secuestro de HTTP. En la mayoría de los casos, no solo se puede resolver el problema de la inserción de anuncios, sino también el problema de la interceptación de contraseñas y el reemplazo del software de descarga. El efecto final es que el operador detiene el secuestro de HTTP, en lugar de filtrar anuncios a través de complementos del navegador después del secuestro. La ventaja de este método es que no es necesario instalar un complemento del navegador para filtrar anuncios, ni requiere un servidor adicional (como un proxy HTTP o una VPN. Puede evitar que el software descargado sea secuestrado por el reemplazo del reembolso). y también puede evitar la filtración de contraseñas hasta cierto punto.
Para explicar cómo funciona este método técnico, es necesario explicar el principio de secuestro HTTP del operador en la mayoría de los casos:
Cuando el navegador del usuario se conecta al sitio web visitado Después de que el servidor envía un Solicitud HTTP, el enrutador del operador primero recibirá la solicitud HTTP, y luego el dispositivo de derivación del enrutador del operador marcará la conexión TCP como el protocolo HTTP, y luego, antes de que el servidor del sitio web devuelva los datos, se pueden enviar mediante el código 302. del protocolo HTTP secuestra el software de descarga. Después de que el navegador reciba el código 302, saltará a la dirección de descarga de software incorrecta para descargar el software y luego se descartarán los datos reales del servidor del sitio web. Alternativamente, después de marcar esta conexión TCP como protocolo HTTP, el dispositivo de derivación devuelve directamente el código HTML modificado, lo que hace que el anuncio del operador se inserte en el navegador y luego los datos reales del servidor del sitio web se descarten cuando finalmente llegue.
Según el principio anterior, si se requiere el secuestro de HTTP, primero debe marcarse: si es el protocolo HTTP, entonces se requiere el secuestro; de lo contrario, no se requiere el secuestro. Entonces, ¿hay alguna manera de evitar que el dispositivo de derivación lo marque como protocolo HTTP, mientras el sitio web de destino aún recibe la solicitud HTTP original sin ningún servidor de terceros? La respuesta es sí:
El módulo que detecta el protocolo HTTP en el dispositivo de derivación suele ser relativamente simple. Generalmente, solo detecta el primer paquete después de que se establece la conexión TCP. , se marcará si no es así. El protocolo HTTP completo no se marcará como protocolo HTTP porque no puede obtener suficiente información de secuestro (nuestro gran firewall no es así y verificará los paquetes de datos posteriores, por lo que este método no es válido). Después de comprender esta situación, el método para evitar el secuestro es relativamente simple: dividir la solicitud HTTP en varios paquetes y luego engañar al operador para evitar el secuestro de HTTP. Sin embargo, la pila de protocolos TCP/IP del sistema operativo del sitio web de destino está relativamente completa y la solicitud HTTP recibida aún está intacta y no afectará la navegación web.
Entonces, ¿cómo dividir la solicitud HTTP enviada por el navegador en varios paquetes? Podemos configurar un servidor proxy local, descomprimir la solicitud HTTP del navegador en el servidor proxy y el navegador puede configurar un servidor proxy local. Lo he probado aquí y la configuración predeterminada tiene un efecto inhibidor muy bueno sobre el secuestro de HTTP por parte de los tres principales operadores (China Telecom, China Unicom y China Mobile).