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:

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

18 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.

  5. Boh, sinceramente sono andato a vedere sul sito e ho provato ad accedere alla sezione Plus… non ho trovato nemmeno un articolo che richieda di iscriversi o altro per leggerlo.

    Sono tutti testi completi senza nessuno script. Non capisco. 😮

  6. Salve il trucchetto del “disabilita stili” da ieri non funziona piu’! che hanno fatto? urgono soluzioni nuove!!! daro’ loro soldi quando leveranno la pubblicità! pagare per vedere pubblicità anche NO! ps. odio i correttori

  7. Leo, sì scusa però… chi ha detto ai lettori di metterci ?preview=true alla fine? 😜

    Direi che si legge bene: http://espresso.repubblica.it/opinioni/pantheon/2018/08/23/news/cl-travolta-da-un-insolito-governo-1.326248

    Andrea, andiamo con ordine. Innanzitutto lo script menzionato nell’articolo funziona ancora senza nessun problema (possiamo discutere su quanto sia bizzarro che dopo mesi non abbiano ancora fatto nulla per risolvere una cosa così semplice ma non voglio divagare).

    urgono soluzioni nuove

    In secondo luogo, anche se fosse… ho scritto piuttosto chiaramente:

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

    Lo scopo del post non è quello di trovare “soluzioni” di alcun tipo, serve a illustrare in modo chiaro ed esplicito una mancanza piuttosto madornale sul sito web di un quotidiano nazionale.

    È una constatazione qualitativa che mi permetto di fare da professionista del settore, perché se facessi io una cosa del genere ad un cliente, passerei poi un brutto quarto d’ora a dovergli spiegare come mai ho commesso una castroneria simile quando gli articoli sono il prodotto. Tutto qua. 🙂

  8. Sia in firefox (61.02) sia in Chrome, se incollo l’url senza ?preview=true in automatico me la riscrive impedendomi la lettura. Ho svuotato la cache, ma non risolvo…

  9. Ah sì mi sono dimenticato di dire che ovviamente uso uBlock Origin. A quanto pare se non è attivo la cosa non funziona. Evidentemente c’è uno script esterno che fa questa cosa e uBlock Origin lo blocca. 😮

    PS: simpatica questa cosa, ci potrebbe stare un post separato. 😀

  10. Ho scoperto questa pagina perché da un paio di giorni non c’era più il testo completo. Effettivamente hanno cambiato qualcosa. Il testo sotto paywall non viene più inviato al client.. ma non sempre. Ho provato stasera, per il primo articolo ho ricevuto il testo completo, per i successivi (anche per il primo, ricaricandolo) il testo non viene più inviato.

  11. Come avevo scritto più su:

    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.

    Ripeto ancora una volta che lo script continua a funzionare perfettamente.

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.