Per navigare in Internet su siti Web sensibili (siti governativi, banche, ecc.), è altrettanto sicuro utilizzare un browser Web moderno come linguaggio di programmazione? In particolare, python + richiede + beautifulSoup per esempio?
I browser moderni sono software estremamente complessi: possono eseguire almeno un complicato linguaggio interpretato, gestire un sacco di diversi tipi di file multimediali e connettersi a una vasta gamma di servizi, che possono utilizzare una vasta gamma di metodi diversi per trasferire i dati sia in testo chiaro che in moduli crittografati. Ciò significa che ci sono molte cose che potrebbero andare storte, con conseguente esposizione dei dati a un utente malintenzionato.
Tuttavia, sono anche oggetto di un ampio scrutinio quando si tratta di aspetti relativi alla sicurezza. Implementano un'attenta gestione della memoria per pagine sensibili, isolano il contenuto delle schede da altre schede, hanno validamente testato le librerie di crittografia e in molti casi vengono costantemente confuse alla ricerca di difetti nelle routine di elaborazione. Chrome ha (al momento della scrittura) circa 1500 problemi CVE , ma, e questo è abbastanza importante, la maggior parte di questi sono risolti rapidamente.
D'altra parte, uno script che carica un sito specifico ed esegue un'azione specifica è relativamente semplice, anche se utilizza librerie predefinite per eseguire operazioni di sollevamento pesante, come l'esecuzione di connessioni SSL. Ciò rende meno probabile la presenza di problemi causati da interazioni impreviste tra i componenti, ma viene utilizzato da un minor numero di persone, quindi eventuali problemi con minore probabilità di essere scoperti. Probabilmente non tenta di garantire che password e altre informazioni sensibili non vengano scritte sul disco inavvertitamente e potrebbero persino contenere credenziali hard codificate, che potrebbero essere esposte se il sistema su cui è in esecuzione è compromesso. Si affida allo sviluppatore per mantenere aggiornate le librerie di crittografia e per gestire eventuali modifiche alle risposte dai siti richiesti (ad esempio se il sito utilizza un'API con un'intestazione Autorizzazione aggiunta da JS, lo script dovrà eseguire il JS, o eseguire passaggi equivalenti e aggiungere l'intestazione quando richiesto).
È improbabile che lo script gestisca elementi come intestazioni HSTS o avvisi quando i certificati non corrispondono alle aspettative, il che significa che se viene utilizzato su una rete non sicura, un utente malintenzionato potrebbe essere in grado di intercettare il traffico generato.
I modelli di minacce per ciascuno sono diversi: lo script è probabilmente molto meno sicuro se un utente malintenzionato è in grado di compromettere il sistema su cui è in esecuzione lo script, mentre un utente malintenzionato può inserire codice dannoso in un annuncio mostrato su un elemento sensibile la pagina probabilmente avrà più successo contro gli utenti di browser completi - probabilmente uno script ignorerà il codice pubblicitario o non sarà vulnerabile ai metodi utilizzati per tentare di sfuggire alla sandbox del browser.
Personalmente, rimango comunque con il browser - gli sviluppatori stanno pensando a problemi che non ho nemmeno preso in considerazione, e implementando correzioni per loro senza che io debba alzare un dito, e fintanto che tengo il mio browser fino a data, questi miglioramenti si presentano come per magia.
Leggi altre domande sui tag python web-browser