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.

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

  1. Gli articoli di Rep sono su rep.repubblica.it, non su www.repubblica.it. In ogni caso non noto problemi a visualizzare questi ultimi, posto di usare correttamente un ad blocker.

  2. ciao e grazie,
    quindi tu vedi chiaramente anche questo..:
    https://www.repubblica.it/economia/2020/11/06/news/bitcoin_raddoppia_investimento_valore-273365452/?ref=RHTP-VS-I273384042-P8-S1-T1

    io ho disattivato tutti gli ad blocker,perche’ come dici a volte interferiscono con la corretta visualizzazione, ma continua a dirmi che e’ riservato ai soli abbonati e non lo vedo…
    potresti spiegare come andrebbe impostato l’ad blocker se invece che disattivato andasse attivato..?
    grazie ancora per tutto!
    🙂

  3. ..di fatti ho provato pure:
    “O ancora più semplicemente, disattivate un attimo gli stili della pagina dal menu di Firefox (Visualizza → Stile pagina → Nessuno stile).”…:
    stesso risultato..mi chiede di essere abbonata…quindi ,provato pure in safe mode, quindi senza add ons che possono interferire,stesso risultato…e’ veramente strano che il trucco:
    O ancora più semplicemente, disattivate un attimo gli stili della pagina dal menu di Firefox (Visualizza → Stile pagina → Nessuno stile).
    funzioni su rep.repubblica.it e non su repubblica.it…
    e’ questo che non so spiegarmi…perche’ se hanno capito e son corsi ai ripari lo avrebbero dovuto fare su entrambi..
    😉
    🙂

  4. ma se si avvia firefox in safe mode e si usa il tuo suggerimento:
    ” disattivate un attimo gli stili della pagina dal menu di Firefox (Visualizza → Stile pagina → Nessuno stile).”…
    si dovrebbe vedere come si vedono quelli su rep.repubblica.it…
    eppure qui esce la richiesta di abbonarsi…
    come te lo spiegheresti..??
    grazie mille ancora!
    🙂

  5. ..provato con un nuovo profilo intonso di firefox e la soluzione:
    ““O ancora più semplicemente, disattivate un attimo gli stili della pagina dal menu di Firefox (Visualizza → Stile pagina → Nessuno stile).”…:”…:
    stesso comportamento…la soluzione, e quindi poi lo script se si passa a profili con add ons,
    funziona solo su rep.repubblica.it
    ma non su repubblica.it…
    e questo e’ davvero molto strano e incomprensibile…
    sistemano solo uno dei loro siti…??..incomprensibile..
    😦

  6. Cosa vuol dire “incomprensibile”?

    Il mio articolo parla di Rep, non del portale principale di Repubblica. Su Rep i contenuti sono nascosti tramite CSS, nel portale principale vengono rimossi con JavaScript… ma sinceramente non capisco tutto questo “stupore”, semplicemente sono pagine diverse con modalità di funzionamento diverse.

    Lo script di prova di cui parla l’articolo, peraltro, non si attiva neppure su pagine che non siano di Rep.

  7. sicuramente mi sono espressa male e mi scuso:
    per me e’ incomprensibile che lo stesso gruppo,Gedi, e per la stessa azienda:Repubblica
    su un sito protegga i dati in un modo come hai definito bene poco -forte- dato che basta o lo script o disattivare gli stili e si vede tutto…mentre su l’altro,sempre di repubblica anche se con indirizzo web leggermente diverso usi un altro sistema che invece non e’ aggirabile…a me sembra incomprensibile che uno che ha una casa con due porte davanti ne chiuda solo una e lasci l’altra accostata…
    comunque confermi che sul sito repubblica.it ,essendo un codice java che protegge, il tuo script non funziona come ovviamente anche il disabilitare gli stili nel browser?
    perché mi sembrava di capire che tu vedessi anche i links ultimi che ho postato,quelli su repubblica.it ,che non usano il codice css ma javascript
    grazie e scusami ancora

  8. E’ abbastanza normale, avendone la possibilità, poter sperimentare diverse strategie di protezione per valutarne gli effetti, una protezione forte non è necessariamente migliore. Per esempio, una protezione debole permette un livello di ‘permeabilità’ delle notizie che ne potrebbe agevolare la diffusione. L’indicizzazione è anche importante e Google non è molto trasparente, quindi si procede per tentativi ed esperienza. C’è poi da considerare il fattore industriale, in un grande gruppo è possibile che siti diversi siano su versione tecnologiche diverse della piattaforma di base e servono investimenti per migrare e allineare tutti, investimenti che vengono di solito allineati ad altri progetti (come ridisegno del sito, implementazione di nuove strategie di marketing etc..).

  9. Ecco, oltretutto ci sono grandi testate giornalistiche (tipo il New York Times) che sviluppano codice diverso persino per singole inchieste o pagine. 😛

  10. Grazie mille
    …mi avete aperto un mondo….
    ora non mi sembra piu’ incomprensibile..
    resta la domanda del perche’ su repubblica.it il javascript venga bloccato da ublock ma non da
    ad es abplus..o adblock…che di solito sono sempre assai efficaci…
    ma questa e’ un altra storia ed esula da questo articolo

  11. Io faccio copia del testo in un editor partendo dal titolo in grassetto e selezionando fino al bordo superiore del paywall; poi incollo in un editor di comodo dove leggo tranquillamente tutto.
    Ma occhio che vale solo per quegli articoli che NON finiscono con 3 puntini di sospensione “…” appena prima fel paywall, in qs casi la cesura funziona veramente. (Questi autenticamente “REP:” ). Quelli selezionabili, se la connessione internet non e’ particolarmente fluida, si possono a volte leggere per intero perche’ talvolta la pagina non viene caricata completamente, a volte mancando il CSS well-formed che serve per nascondere (o a volte arriva con qualche ritardo per cui si legge per un momento, e poi viene coperto)

  12. Grazie mille Andrea,
    il fatto e’ che leggendo il tuo articolo non avevo capito che tale estensione funziona solo con vers.AMP…e anche sulla pagina dello sviluppatore mi pare,anche se e’ in inglese quindi posso non aver tradotto bene, che non venga specificato…sbaglio..??
    grazie ancora

  13. grazie davvero per tutto,
    permettimi di dissentire su questo:
    “I miei script sono ormai “superati”
    non lo sono assolutamente, anzi sono l’unica cosa che veramente ci aiuta
    grazie ancora per il tuo preziosissimo impegno
    🙂

  14. Ciao Giusi, con Chrome e l’extension l’articolo che hai postato viene gestito. L’extension rimanda alla versione AMP che è liberamente consultabile.

  15. Grazie mille Camillo!
    Vero!
    Perfetto!!
    …evidentemente è meglio sviluppata per chrome che per firefox…
    grazie!!

Lascia un commento

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

Logo di 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...

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.