Para navegar por Internet en sitios web confidenciales (sitios web gubernamentales, bancos, etc.), ¿es tan seguro usar un navegador web moderno como lenguaje de programación? Específicamente, python + request + beautifulSoup por ejemplo?
Los navegadores modernos son piezas de software masivamente complicadas: pueden ejecutar al menos un lenguaje interpretado complicado, manejar un montón de diferentes tipos de archivos multimedia y conectarse a una amplia gama de servicios, que pueden usar una amplia gama de métodos diferentes para transferir datos tanto en texto claro como en formas encriptadas. Eso significa que hay muchas cosas que podrían salir mal y que los datos estén expuestos a un atacante.
Sin embargo, también están sujetos a un gran escrutinio cuando se trata de los aspectos de seguridad. Implementan una cuidadosa gestión de la memoria para las páginas confidenciales, aíslan los contenidos de las pestañas de otras pestañas, han probado las bibliotecas de encriptación de forma vigorosa y, en muchos casos, se vuelven confusos en busca de fallas en las rutinas de procesamiento. Chrome tiene (Al momento de escribir) unos 1500 problemas de CVE , pero, y esto es muy importante, la mayoría de estos se arreglan rápidamente.
Por otro lado, una secuencia de comandos que carga un sitio específico y realiza una acción específica es relativamente simple, incluso si utiliza bibliotecas pre-construidas para realizar tareas pesadas como realizar conexiones SSL. Eso hace que sea menos probable que contenga problemas causados por interacciones inesperadas entre componentes, pero es usado por menos personas, por lo que es menos probable que se descubran los problemas. Probablemente no haga ningún intento de garantizar que las contraseñas y otra información confidencial no se escriban en el disco de forma inadvertida, e incluso pueden contener credenciales codificadas, que podrían estar expuestas si el sistema en el que se está ejecutando está comprometido. Se basa en el desarrollador para mantener las bibliotecas de cifrado actualizadas y para manejar cualquier cambio en las respuestas de los sitios que se requieren (por ejemplo, si el sitio utiliza una API con un encabezado de autorización agregado por JS, el script deberá ejecutar el JS, o realice pasos equivalentes y agregue el encabezado cuando sea necesario).
Es poco probable que la secuencia de comandos maneje cosas como encabezados HSTS o emita alertas cuando los certificados no coincidan con las expectativas, lo que significa que si se usa en una red insegura, un atacante puede interceptar el tráfico generado.
Los modelos de amenazas para cada uno son diferentes: es probable que el script sea mucho menos seguro si un atacante puede poner en peligro el sistema donde se ejecuta el script, mientras que un atacante que puede colocar código malicioso en un anuncio que se muestra en una Es probable que la página sea más exitosa contra los usuarios de navegadores completos: un script probablemente ignorará el código de publicidad o no será vulnerable a los métodos utilizados para intentar escapar del entorno limitado del navegador.
Personalmente, me quedo con el navegador, sin embargo, los desarrolladores están pensando en problemas que ni siquiera he considerado, y estoy implementando correcciones para ellos sin que tenga que mover un dedo, y mientras mantengo mi navegador hasta A la fecha, estas mejoras solo aparecen como magia.
Lea otras preguntas en las etiquetas web-browser python