URL:     https://linuxfr.org/users/chimrod/journaux/tentative-de-reecrire-petrolette-qui-cale
Title:   Tentative de réécrire petrolette, qui cale
Authors: chimrod
Date:    2026-11-07T22:19:25+01:00
License: CC By-SA
Tags:    pétrolette
Score:   0


Cher journal, je t’écris pour te partager autre chose que des projets écrits à l’aide d’outils IA. Cette fois, je te présente un projet que je viens d’abandonner en réalisant que la réalité était plus forte que moi…

## Acte 1 : Réécrire le monde

J’ai pris l’habitue d’utiliser petrolette (déjà [présenté ici](https://linuxfr.org/tags/p%C3%A9trolette/public)) pour suivre l’actualité via mes flux RSS. L’application permettait d’enregistrer dans le navigateur la liste des flux rss auxquels on souhaite s’abonner, pour les présenter quand on se connecte sur la page principale. Selon les flux que l’on a enregistré deux personnes verront différents flux, et comme tout est stocké dans le navigateur, il n’y a pas d’abonnement requis, je peux consulter le site depuis le travail comme de la maison, ce qui est devenu un des points d’entrées pour ma veille et le suivi de l’actualité.

Or, le service a été arrêté.

Qu’à cela ne tienne, pourquoi ne pas le reprendre moi-même ? Je possède un blog, en hébergement statique (c’est-à-dire sans code exécuté sur le serveur) contenant des applications en javascript. Je sais que je suis capable d’écrire un code javascript qui se charge d’aller lire mes flux RSS préférés et les mettre en forme proprement ; en plus ça en jette si je fournis cette page sur mon blog, j’utilise mon propre hébergement pour proposer une application que j’utiliserai tous les jours ! Trop bien !

C’est parti, je me code une petite application, que je teste dans un environnement node.js pour commencer, et j’obtiens rapidement ce que je veux :

```
$ node _build/default/bin/main.bc.js
[Importer : mon projet de transformation de donnée](https://blog.chimrod.com/2026/08/importer-mon-projet-de-transformation-de-donnee/)

[Lire ses podcasts avec MPD](https://blog.chimrod.com/2024/06/lire-ses-podcasts-avec-mpd/)

[À tous ceux qui écrivent des scripts dans leur coin](https://blog.chimrod.com/2023/04/a-
tous-ceux-qui-ecrivent-des-scripts-dans-leur-coin/)

[Une aide de jeu pour Wordle / Sutom](https://blog.chimrod.com/2022/02/une-aide-de-jeu-pour-wordle-sutom/)

[Découverte de buildroot avec un raspberrypi](https://blog.chimrod.com/2021/11/decouverte-de-buildroot-avec-un-raspberrypi/)
```

Voilà, la liste des articles de mon blog, avec le titre et le lien pour chacun d’eux, dans la console. Il n’y a plus qu’à reprendre le code et le faire tourner dans le navigateur pour tester et…


> Blocage d’une requête multiorigines (Cross-Origin Request) : la politique « Same Origin » ne permet pas de consulter la ressource distante située sur https://blog.chimrod.com/feeds/atom.xml. Raison : l’en-tête CORS « Access-Control-Allow-Origin » est manquant. Code d’état : 200.

Quoi ? Mais ? Quoi ? Alors je ne m’attendais pas à ça. Le même code ne passe plus. Je sais ce que ça veut dire, c’est le navigateur qui m’empêche de faire une requête sur un site externe, par mesure de sécurité, mais je cherche juste à lire un flux RSS ! Pas à attaquer une API ou je ne sais quoi.

Je recherche un peu s’il est possible de faire autrement, un simple requête qui ne présenterai pas de risque de sécurité, ou une autre manière de faire, mais toutes les réponses que je trouve sur le net me conduisent vers une impasse.

Il est temps d’éteindre le PC, et de faire autre chose, ça ne sert à rien de vouloir forcer sans réfléchir. Ça tombe bien j’ai du repassage en attente : ça ne demande pas beaucoup de réflexion, mais ça occupe la tête et ça va m’éloigner du PC pendant un temps. Rideau.

## Acte 2 : le fer à repasser les requêtes

Bien souvent, les navigateurs ont une meilleure conception de la sécurité que moi, essayons un peu de comprendre pourquoi j’ai été recalé. Au final ce que j’essaie de faire, c’est offrir un service depuis mon blog qui propose de faire des requêtes sur des sites sans savoir lesquels (puisque la liste des sites vient du navigateur). Est-ce vraiment ce que je veux ? Est-ce que j’accepte d’ouvrir un moyen de faire des requêtes vers _n’importe quel site_ pour _n’importe qui_ ?

Ah. Déjà, présenté comme ça, ça fait moins rêveur. Et si l’un des flux RSS que l’on me demande de consulter n’est pas un flux RSS ? Une solution serait de mettre dans le code une liste blanche des sites que j’accepte de requêter, mais cela ne résout pas mon problème : le navigateur refusera de faire cette requête pour moi. Et… le code javascript est envoyé au client, il doit pouvoir modifier cette liste blanche, vu que je n’ai pas de service back ! Et si au lieu de faire une requête GET, on modifie le script pour réaliser en mon nom une requête POST ?

Je pourrai mettre en place une application qui tourne en tâche de fond sur le serveur, et qui requête les flux RSS pour en exposer la réponse… mais suis-je vraiment prêt à offrir ça ?

## Remerciements

À ce stade, j’ai posé le fer à repasser et mon tas de linge déjà plié a bien augmenté. Je réalise que je ne suis pas aussi ouvert que toi @yphil. je ne suis pas prêt à réouvrir ton service au monde entier avec mon code à moi. J’ai été utilisateur de ton application pendant des années (tu as dû recevoir mon dernier virement via liberapay le mois dernier), mais je vais devoir m’arrêter là. J’en sais assez en sécurité pour savoir que je ne suis pas de taille. Je pensais être capable de coder l’application facilement, et je réalise que les enjeux sont bien plus importants que ça. Il aura fallu que tu arrêtes ton service pour que j’en comprenne le fonctionnement.

C’est donc un double merci, d’avoir mis à disposition cette application  à tous pendant ces années, mais aussi de m’avoir fait poser ces questions et de m’avoir fait prendre conscience de mes limites face à ce grand internet.

Rideau.
