Gli articoli premium di Repubblica li può leggere chiunque, senza pagare

Il progetto OWASP (Open Web Application Security Project) mantiene da diversi anni la OWASP Top 10, vale a dire la lista delle dieci vulnerabilità più critiche nell’ambito delle applicazioni web. È una lista conosciuta da tutte le persone che si occupano di sicurezza informatica e, vorrei sperare, anche da chi si occupa di sviluppo web.

Un tipo di vulnerabilità che compare in tutte le edizioni della lista, in un modo o nell’altro, riguarda la possibilità di accesso a risorse che dovrebbero essere protette ma non lo sono in modo adeguato.

Repubblica ha lanciato un servizio premium a Novembre dell’anno scorso, chiamandolo “Rep”. All’interno di esso compaiono articoli di cronaca, pezzi di opinione e molto altro. Chi non è abbonato, visitando un articolo di Rep vede alcune frasi dell’articolo, seguite da un messaggio che recita:

Abbonati a Rep per continuare a leggere

Fino a qui, sembrerebbe tutto normale. Il browser di un utente anonimo riceve un pezzo dell’articolo, ma non può leggere oltre fino a che non effettua il login: è il funzionamento base di un paywall.

Su alcuni siti vulnerabili ci potrebbe essere qualcuno che riesce a bypassare il pagamento e leggere integralmente gli articoli, magari alterando i parametri dell’URL, i cookie o il referer. Questa possibilità esiste, però richiederebbe una specie di “manipolazione” basilare o comunque un intervento da parte dell’utente per ricevere il testo completo.

Il caso di Rep è completamente diverso e mi ha stupito moltissimo quando l’ho visto. Basta infatti guardare il codice sorgente caricato dal browser per scoprire un artificio meramente estetico:

rep_testo
Il testo di un articolo su Rep, visualizzato da un utente non registrato

Si nota infatti che è il sito stesso, cioè l’applicazione Rep, a inviare il testo integrale di ogni articolo al browser di qualsiasi visitatore lo visualizzi. Non c’è nemmeno la possibilità di non riceverlo, arriva infatti in automatico con tutto il resto della pagina.

Il testo viene poi semplicemente nascosto tramite lo stile grafico del sito (una riga di codice CSS che chiunque può disattivare). Ed è questa la cosa più incredibile di questa vicenda:

  • non è necessario installare niente
  • non c’è bisogno di “manipolare” nulla

Rep invia a tutti i visitatori i testi completi di tutti gli articoli, che sono visibili se si disattiva lo stile che li nasconde (o anche navigando con gli stili disattivati, un’opzione di Firefox poco utilizzata ma presente fin dagli albori del browser).

Anzi, se volete provare da voi vi basta visitare un qualsiasi articolo di Rep, aprire gli strumenti di sviluppo del browser e togliere la casellina sulla regola giusta. O ancora più semplicemente, disattivate un attimo gli stili della pagina dal menu di Firefox (Visualizza → Stile pagina → Nessuno stile).

Se siete totalmente pigri, volete automatizzare la cosa per ciascun articolo che visitate, oppure volete farlo da smartphone (in tal caso avrete bisogno di Firefox) ho anche pubblicato un microscopico user-script che funziona con le estensioni Greasemonkey e Tampermonkey. Lo potete installare da qui:

Download — Repubblica “Rep” Aesthetic Paywall Bypass

Naturalmente lo script è solo un proof-of-concept e il sito può venire sistemato in qualsiasi momento.

Quello che abbiamo sotto gli occhi è un tentativo di fare “sicurezza” lato-client, ovvero sulla macchina dell’utente dell’applicazione web. Questo è un approccio che non funziona, anzi è talmente grossolano che sembra dover richiedere un’altra spiegazione.

Alcune persone con cui ho parlato ipotizzano che venga fatto in modo intenzionale, per consentire l’indicizzazione degli articoli da parte di Google. Questo potrebbe certamente essere vero, anche perché sembra strano che nessuno sia intervenuto nel giro di mesi. Però Google fornisce degli strumenti appositi per gli sviluppatori di contenuti protetti da paywall. Forse sarebbe il caso di utilizzarli.

Se anche voi state sviluppando un’applicazione web, assicuratevi di effettuare adeguate valutazioni di tutto il codice, verificando una per una tutte le vulnerabilità della OWASP Top 10 (e non solo quelle). Proteggere i contenuti è fondamentale, specialmente quando i contenuti sono il prodotto. A questo proposito, potrebbe essere una buona idea richiedere un servizio di consulenza professionale in merito.

Annunci

7 pensieri su “Gli articoli premium di Repubblica li può leggere chiunque, senza pagare

  1. Purtroppo non ho capito come funziona. Ho scaricato il Bypass e ho Tampermonkey su Chrome ma non succede niente. Un aiutino? Grazie

  2. Che pizza, a quanto pare Repubblica su Chrome renderizza le pagina con lo shadow DOM attivo. :\ Vabbè, intanto ho messo un redirect sugli URL da /pwa/ a /ws/detail/ che sembra la stessa cosa ma senza shadow DOM.

    In ogni caso lo script, come scritto sopra, è un proof-of-concept. Quello che conta è il principio.

  3. Grazie per la risposta ma io non sono assolutamente uno pratico e non ho capito niente di quello che hai scritto. Abbi pazienza.

  4. Nel commento precedente spiegavo perché sulla versione del sito che viene mostrata agli utenti Chrome non bastano due righe di CSS, tutto qui. Ho poi scritto qual è il workaround usato nella versione 1.1 dello script.

    Ad ogni modo tutto ciò è relativamente poco importante, quanto è scritto nel post rimane valido, in quanto chiunque può usare Firefox, oppure semplicemente disattivare l’artificio estetico “a mano” e leggersi tutti gli articoli che desidera.

    Lo script è un PoC, non una release di un software che verrà mantenuto aggiornato nel tempo.

Che cosa ne pensi?

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...

This site uses Akismet to reduce spam. Learn how your comment data is processed.