Screen scraping
Le screen scraping, ou capture de données d’écran, consiste à copier des informations qui s’affichent sur un écran d’un équipement numérique pour les utiliser à d’autres fins.
Les données visuelles peuvent être collectées sous forme de texte brut à partir d’éléments affichés à l’écran comme du texte ou des images présentés sur le poste de travail, dans une application ou sur un site Web. Le screen scraping peut être effectué automatiquement, à l’aide d’un programme spécifique, ou manuellement, en extrayant les données une à une.
Ses utilisations, éthiques ou non éthiques, sont multiples. Par exemple, on peut l’utiliser dans une application pour établir la solvabilité d’une entreprise ou pour subtiliser illégalement des données dans des applications. Un développeur pourrait être tenté de voler le code d’une autre application pour rendre son travail de développement plus rapide et facile, ce qui est légalement répréhensible.
Utilisations du screen scraping
Les applications de screen scraping sont utilisées dans un grand nombre de domaines, notamment :
- les applications bancaires et les transactions financières ;
- la sauvegarde de données importantes pour une utilisation ultérieure ;
- l’exécution d’opérations qu’un utilisateur réaliserait sur un site Web ;
- la conversion des données d’une application ancienne pour les réutiliser dans une application récente ;
- l’agrégation de données, par exemple pour bâtir un site Web de comparaison des prix ;
- le suivi de profils d’utilisateurs pour surveiller leurs activités en ligne ;
- le vol de données.
Le screen scraping est utilisé surtout dans le domaine bancaire. Les créanciers peuvent y avoir recours pour collecter les données financières d’un client. Il permet aux applications financières d’accéder aux divers comptes d’un utilisateur, pour en regrouper toutes les informations.
Toutefois, les utilisateurs doivent explicitement donner leur accord, dans la mesure où ils font confiance à l’organisme qui héberge leurs comptes, leurs données clients et leurs mots de passe. Le screen scraping peut aussi être utilisé par les applications de prêts hypothécaires.
Enfin, une entreprise peut s’en servir pour convertir des données entre une application ancienne et une nouvelle interface utilisateur afin de pouvoir continuer à utiliser la logique et les données du programme ancien. Toutefois cette utilisation est rare et réservée aux cas où d’autres méthodes ne peuvent pas être envisagées.
Dans certains cas, le screen scraping implique un système tiers. Par exemple, il peut permettre à une entreprise tierce d’accéder aux données des transactions financières dans une application de gestion budgétaire.
Fonctionnement du screen scraping
Il existe plusieurs manières d’extraire des données via le screen scraping, selon l’utilisation que l’on veut en faire. Par exemple, à l’aide de Java, une personne peut copier le code source d’une application pour le coller dans la sienne si elle sait comment y accéder directement.
En général, le screen scraping permet d’extraire les données affichées à l’écran d’un élément spécifique de l’interface utilisateur ou d’un document. Différentes méthodes peuvent être utilisées pour extraire tout le texte d’une page, formaté ou non formaté, avec son positionnement exact. Les programmes de screen scraping s’articulent parfois autour d’applications telles que Selenium ou PhantomJS, qui permettent aux utilisateurs d’extraire des informations du code HTML d’un navigateur. Il est également possible d’utiliser des outils UNIX, par exemple les scripts Shell, pour des opérations simples de screen scraping.
Dans le domaine bancaire, un tiers demande aux utilisateurs de partager leurs identifiants de connexion afin de pouvoir accéder à leurs données de transactions financières en ouvrant une session sur les portails numériques destinés aux clients. Ensuite, une application de gestion budgétaire peut extraire les transactions entrantes et sortantes entre les comptes.
En ce qui concerne le transfert de données à partir d’un programme ancien, l’outil de capture doit récupérer les données provenant de ce programme qui sont formatées pour l’écran d’un terminal ancien, par exemple l’IBM 3270, et les reformater pour Windows 10 ou un navigateur Web. L’outil doit également reformater les entrées utilisateur des interfaces utilisateur plus récentes (par exemple une interface utilisateur graphique Windows ou un navigateur Web) afin que l’application ancienne puisse traiter la requête comme si elle provenait de l’utilisateur du périphérique et de l’interface plus anciens.
Comment empêcher le screen scraping
Malheureusement, il n’existe aucune méthode sûre pour empêcher le screen scraping. Cependant, il existe des moyens de dissuasion. Une entreprise peut détecter les tentatives de screen scraping grâce à quelques signatures particulières ou comportements d’utilisation. Par exemple, la détection d’un agent utilisateur non standard, l’échec de l’exécution de JavaScript côté client ou l’envoi de plusieurs séquences de requêtes de pages peuvent être des signes d’une tentative de screen scraping.
Pour éviter au maximum le screen scraping, une entreprise peut :
- utiliser des mots de passe à usage unique, parce que les programmes de screen scraping ne peuvent pas voir un mot de passe tant qu’il n’est pas utilisé ;
- utiliser des pare-feux d’applications Web, qui permettent de détecter les actions basées sur une signature ou un comportement ;
- définir une valeur de cookie qui devra être vérifiée par le serveur Web dans JavaScript ;
- faire en sorte que les terminaux ou les API soient protégés ;
- exécuter un logiciel de détection de fraude pour intercepter les tentatives de screen scraping si possible au moment où elles surviennent ;
- faire en sorte que les contenus s’affichent sous la forme d’images, ce qui n’empêchera pas le screen scraping mais bloquera les programmes qui ne peuvent pas convertir les images.
Toutes ces méthodes peuvent avoir un effet dissuasif, mais n’empêcheront pas complètement le screen scraping. De plus, les entreprises doivent s’assurer que les mesures mises en œuvre ne détériorent pas l’expérience utilisateur. Par exemple, si le contenu d’un site Web s’affiche sous la forme d’une image, les visiteurs auront du mal à trouver la page concernée, car le fonctionnement des moteurs de recherche en sera affecté.
Outils de screen scraping
Les personnes qui ne veulent pas capturer manuellement les données d’écran peuvent automatiser le processus à l’aide de divers outils :
- UiPath
- Jacada
- FMiner
- Macro Scheduler
- ScreenScraper Studio
- Existek
Ces outils comportent des fonctions d’automatisation, telles que des interfaces utilisateur, des utilitaires d’enregistrement de macros et des éditeurs. Ils s’exécutent sous Windows ou dans des applications Web. Certains possèdent des caractéristiques particulières qui les distinguent des autres et visent des plateformes spécifiques.
Screen scraping ou web scraping
Alors que le screen scraping consiste à extraire des données affichées à l’écran, le web scraping extrait des données publiées sur le Web. Ces deux pratiques sont très similaires, au point que l’on peut dire que le web scraping constitue une forme particulière de screen scraping. Ce qui les différencie, ce sont principalement la source des données et leur utilisation.
Le web scraping est utilisé pour extraire des données exclusivement du Web, à la différence du screen scraping qui permet également de capturer des données sur le poste de travail d’un utilisateur ou dans une application. Cette forme d’extraction des données peut notamment servir à comparer les prix des marchandises dans une boutique de vente en ligne, au référencement sur Internet et au data mining.
Le processus accède au Web via HTTP dans un navigateur et peut être lancé manuellement ou de manière automatique à l’aide d’un bot ou d’un robot d’indexation.
Différence entre screen scraping et data scraping
Le data scraping est à l’origine du screen scraping. C’est une technique qui consiste à extraire des données structurées et lisibles par l’utilisateur. Elle sert principalement à échanger des données avec un système ancien et à les rendre lisibles par les applications récentes.
Screen scraping et open banking
Les principales utilisations du screen scraping ont évolué avec le temps. C’est le cas notamment dans l’un de ses principaux domaines d’application, le secteur bancaire, qui l’abandonne progressivement depuis 2019, essentiellement pour des raisons de sécurité. Désormais, les applications de gestion budgétaire doivent utiliser une technologie d’open banking unique.
L’open banking est un concept dans lequel des informations financières sécurisées sont partagées avec des développeurs tiers pour leur permettre de créer des applications bancaires. Il repose sur le partage d’API, grâce auquel une application peut utiliser la même API pour regrouper au même endroit les informations provenant de différents comptes. C’est ainsi qu’une application bancaire peut donner la possibilité à ses utilisateurs de consulter les comptes qu’ils détiennent dans des banques différentes.
Avec l’open banking, les données nécessaires, et uniquement ces données, sont copiées sans que l’utilisateur ait besoin de communiquer ses identifiants. Ce concept a été lancé en 2018 et prend progressivement le pas sur le screen scraping.