GithubHelp home page GithubHelp logo

rai.tv-media-downloader's Introduction

rai.tv-media-downloader

This software is intended to be mainly used from Italian persons. This document is therefore written in Italian language. Nevertheless, code and included comments are in English language.

###Descrizione

Questo semplice script permette di scaricare contenuti dal sito rai.tv.

Si tratta di una prima versione dello script, migliorabile in termini di leggibilità del codice e ottimizzazione.

###Utilizzo

Da una shell Bash, lanciare il programma con il seguente comando:

bash rai.sh [-s] <search_string>

dove il parametro -s, opzionale, identifica la ricerca di un episodio di una (mini) serie. Il parametro <search_string> identifica invece la ricerca da eseguire.

Un esempio di ricerca è il seguente:

bash rai.sh -s Non dirlo al mio capo

Per ogni episodio trovato, verrà richiesto se si intende memorizzarlo/scaricarlo su disco oppure no. In caso affermativo, l'episodio verrà salvato all'interno della stessa directory dello script.

###L'exploit (e come migliorare la piattaforma Rai)

####Recupero dei metadati

Proprio come avviene con il sito Rai e le app mobile, lo script comunica direttamente con le API fornite dal sito Rai per poter recuperare informazioni sui contenuti in formato XML. L'indirizzo utilizzato per ottenere la lista di contenuti in formato XML è il seguente.

http://www.rai.tv/ricerca/search?q=$SEARCH&sort=date:D:L:d1&filter=0&getfields=*&site=raitv&client=rai_tv2&start=0

dove il parametro $SEARCH (parametro q passato via HTTP) identifica la stringa ricercata.

A giugno 2016, il sito ufficiale Rai utilizza tale strumento di ricerca per la ricerca di contenuti all'interno della piattaforma rai.tv.

####Protezione dei contenuti Nel caso in cui il fornitore del servizio intendesse proteggere in modo più appropriato i propri contenuti è possibile come descritto (brevemente) di seguito. Sebbene i metodi suggeriti portino ad un incremento della sicurezza, essi non forniscono protezione da attacchi avanzati (es. compromissione dei server o nodi vulnerabili, wrapping di librerie, ecc.).

#####Utilizzo del protocollo HTTPS Un primo approccio, relativamente rapido ed indolore, prevede l'adozione di una connessione sicura di tipo HTTPS per il recupero dei feed. Questo non protegge da eventuali analisi client-side, ma protegge da eventuali operazioni effettuate a livello di rete.

#####Controllo dei certificati SSL lato client Per quanto riguarda le app per dispositivi mobili, è possibile evitare attacchi di tipo man-in-the-middle su protocollo HTTPS effettuando un controllo lato client dei certificati SSL del server Rai. Tale approccio richiede l'installazione dei certificati all'interno della app. In aggiunta, tecniche di code-ofuscation dovrebbero essere adottate per proteggere la app.

#####Pagine web dinamiche e contenuti ad-hoc legati alla sessione Lato web, il recupero dei contenuti potrebbe essere generato dinamicamente lato server (con recupero dinamico, o generazione, lato client della porzione di pagina che mostra i contenuti) evitando al client una comunicazione diretta con il servizio che fornisce le API. In questo modo il client non potrebbe conoscere l'identità del fornitore di API, attraverso una analisi del traffico generato dalla piattaforma web del servizio.

Inoltre, maggiore sicurezza sarebbe fornita in questo caso da una generazione dinamica dell'URL del contenuto multimediale, vincolandolo alla specifica sessione o associandogli una durata/scadenza temporale. In questo modo, non sarebbe possibile per l'utente condividere l'URL di un video, una volta noto l'indirizzo.

###Disclaimer

Si assume che gli utilizzatori del programma siano abbonati al servizio Rai. Non sono responsabile per ogni utilizzo illecito del programma fornito.

###Contatti

Sono disponibile su Twitter come @auino.

rai.tv-media-downloader's People

Contributors

auino avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.