zenCancan, un lecteur web de flux RSS

Posté par (page perso) . Modéré par patrick_g.
Tags :
14
15
fév.
2011
Internet
zenCancan est un nouveau lecteur de flux RSS en ligne entièrement libre. L'idée de base est venue avec la lecture des blogs : comment suivre les flux RSS de commentaires des billets de blogs sans polluer un lecteur comme Google Reader ou Liferea.

La solution est très simple : zenCancan ! zenCancan ne liste pas l'ensemble des articles, mais simplement le dernier article de chaque flux. Ainsi, la lecture de flux constamment mis à jour, comme les journaux en ligne, ou certains blogueurs très bavards, ne masquent pas les flux moins loquaces.

Le deuxième apport de zenCancan par rapport à un lecteur plus classique est la facilité d'ajout d'un flux. En effet, il faut être sacrément geek pour savoir ce qu'est un flux RSS et l'utiliser. Dans zenCancan, il suffit juste de mettre le nom du site.

Autre avantage de zenCancan, celui-ci est beaucoup plus clair : il ne conserve pas tous les articles, il ne vous indique ni ceux que vous avez déjà lus, ni leur nombre, zenCancan va à l'essentiel et c'est là tout son intérêt. Les fans de Google Reader qui ont plus de 1000 articles non lus savent de quoi il en retourne et pourquoi une telle fonctionnalité est plus zen.

Enfin, zenCancan fonctionne sans une seule ligne de Javascript et ravira donc les fans de no-script et d'accessibilité. zenCancan offre les fonctionnalités suivantes :
  • Inscription automatique et anonyme
  • Inscription avec une URL nommée (Exemple : eric.zencancan.com)
  • Protection par mot de passe
  • Ajout d'un flux RSS via :
    • l'URL du flux,
    • l'URL d'une page HTML disposant d'une alternative RSS,
    • un mot-clé dont la recherche via Google va afficher une page HTML disposant d'une alternative RSS

  • Liste des derniers articles de l'ensemble des flux triés par date
  • Agrégation de tous les flux dans un flux RSS unique
  • Liste de tous les articles présents sur le flux pour un flux donné
  • Suppression de flux
  • Regroupement des flux via un mot-clé (catégorie)
  • Import/export des flux en OPML
  • Lecture de l'article directement dans le logiciel


zenCancan est écrit en PHP 5.3 et fonctionne avec MySQL.

La licence :
©Sigmalis 2011 - Sigmalis vous autorise à utiliser, étudier, copier, modifier et diffuser le logiciel zenCancan sans aucune restriction, ni aucune obligation.
  • # Installation en local impossible

    Posté par . Évalué à 1.

    J'ai téléchargé les source disponibles via le lien Téléchargement mais n'ai trouvé aucunes informations relatives à l'installation du logiciel sur un serveur http personnel.

    C'est dommage car l'idée de base me semble intéressante.
    • [^] # Re: Installation en local impossible

      Posté par (page perso) . Évalué à 2.

      2 ou 3 ligne sur l’installation serait en effet nécessaire.
      Le pack zippé contient un répertoire www, mais aussi des fichier php plus haut dans l’arborescence. On a un init.php qui visiblement sert à créer la base de donnée locale, mais s'il y a un ordre pour lancer les fichiers, on va patauger un petit peu.
    • [^] # Re: Installation en local impossible

      Posté par (page perso) . Évalué à 3.

      Je savais bien que j'avais oublié quelque chose.

      Je viens de republier une nouvelle version du code source contenant un fichier d'installation :
      http://source.zenprog.com/zencancan/install.txt

      N'hésitez pas à me dire si ça ne fonctionne pas .
      • [^] # Re: Installation en local impossible

        Posté par . Évalué à 2.

        Merci pour les modifications, j'ai maintenant une version local fonctionnel. Il me reste un problème sur l'import des .opml qui retourne une page blanche.

        Je vous recontacte plus tard à ce sujet via votre formulaire.
  • # Intéressant

    Posté par . Évalué à 2.

    Franchement, je trouve que c'est une très bonne idée et surtout originale.
    Fallait y penser. je n'avais pas encore vu/trouvé de système de ce genre (totalement dédié).

    Réflexion faite, je me suis rendu compte que j'avais déjà ce comportement de consultation pour ce genre de sites très productifs (dont je me passe facilement et me moque de perdre des posts) : je les consulte via le "gadget" de lecture de flux rss de la page personnalisée de google.

    L'ajout de flux par mot clé est tout de même un peu la roulette russe, c'est le "j'ai de la chance" du flux rss ? mais je dois reconnaitre que mes quelques essais sont tombés plies.
  • # C'est rapide!

    Posté par . Évalué à 2.

    Salut!

    Je suis particulièrement étonné par la rapidité du site! L'ajout d'un flux se fait instantanément, et la liste des articles est disponible tout de suite.

    Comment font-ils?!?

    J'utilise tt-rss http://tt-rss.org et je ne sais pas si c'est mon petit serveur ou le nombre trop important de flux, mais ça rame vraiment. (Actuellement 27000 articles non lus :-/ )

    En plus, «l'inscription automatique et anonyme» est une fonctionnalité étonnante et vraiment pratique. Plus besoin de se dire «Tiens, si j'essayais ce truc... Me*de il faut créer un compte, vite jetable.org, ...»

    Félicitations aux auteurs!
    A+
  • # Et PlanetPlanet ?

    Posté par . Évalué à 1.

    Ça se positionne comment par rapport à PlanetPlanet ? C'est tout de même l'agrégateur web le plus utilisé, au point d'être quasi devenu un nom commun.

    Article Quarante-Deux : Toute personne dépassant un kilomètre de haut doit quitter le Tribunal. -- Le Roi de Cœur

    • [^] # Re: Et PlanetPlanet ?

      Posté par (page perso) . Évalué à 3.

      zenCancan se positionne de manière orthogonale à PlanetPlanet :

      - de par l'utilisation: c'est plus un lecteur web comme tinytinyRSS

      - de par la méthode d'agrégation: le principe d'agrégation de zenCancan est de ne présenter que le dernier article de chaque flux (et pas une liste de tout les articles de tous les flux)

      Toutefois, une évolution à laquelle j'ai pensé est effectivement la possibilité de rendre public ses flux, ou de créer des pages de flux publics. Cela rapprocherait l'outil d'un Planet. Il faut voir si cela a un intérêt pour les utilisateurs.
  • # Licence

    Posté par (page perso) . Évalué à 2.

    Et pourquoi pas une WTFPL ou, encore mieux, la LPRAB ?

    WTFPL : http://sam.zoy.org/wtfpl/
    LPRAB : http://sam.zoy.org/lprab/

    Commentaire sous licence LPRAB - http://sam.zoy.org/lprab/

    • [^] # Re: Licence

      Posté par (page perso) . Évalué à 1.

      J'y ai longtemps réfléchi, ainsi qu'a la licence CC0, mais:

      WTPLF: C'est en anglais
      LPRAB: le nom de cette licence peut faire croire au non-sérieux du logiciel

      Mais, je pense que la licence de zenCancan est compatible avec la LPRAB, vous pouvez même redistribuer le logiciel sous licence LPRAB : j'ai en "rien à branler" !
  • # C'est vraiment utile ?

    Posté par . Évalué à 2.

    Désolé mais j'ai du mal à comprendre. C'est vraiment utile pour vous de n'avoir que le dernier article d'un flux rss ? On perd beaucoup d'informations du coup non ? Si on y va qu'une fois par jour par exemple et que l'on a divers flux d'actualité informatique (clubic, linuxfr, etc) on va rater beaucoup d'actualité.

    Autant pour les flux qui suivent les commentaires sur un article, forum, blog je suis d'accord, mais le reste ?

    Donc en résumé ma question est : est-ce utile pour d'autres cas ?

    • [^] # Re: C'est vraiment utile ?

      Posté par . Évalué à 1.

      Personnellement, pour mon utilisation, je ne vois vraiment pas l'utilité.

      Faudrait que quelqu'un m’explique aussi...

  • # De la sécurité

    Posté par (page perso) . Évalué à 2.

    Ça fait longtemps que je n'ai pas craché sur le logiciel d'un débutant. Je vais donc en profiter pour souiller la nouvelle version de DLFP.

    Mon opinion est que ce logiciel est un bon prototype. Les idées sont bonnes, ça fait des choses, et c'est bien. Mais le logiciel de doit absolument pas être utilisé en production car il n'y a aucune politique de sécurité appliquée lors du développement.

    Lors de la construction des URL destinées aux redirections, les variables utilisées ne sont pas échapée. Étant donné qu'elles viennent de l'extérieur, il donc possible de forger des URL.

    À la création du HTML, aucun contenu de variable utilisé pour la construction n'est filtré.

    Aucun formulaire n'utilise la technique des token, ce qui rend les attaques par CSRF possibles.

    Le formulaire de contact envoie des courriels, sans aucune protection aucune. Je prédis donc un grand avenir au robots spammeurs pour utiliser zenCancan. Car le logiciel aura du succès, il est très utile.

    L'injection SQL semble évitée en raison de l'usage assez correct de PDO (oui, utiliser des statement n'est pas forcément une bonne idée, mais ça va au-delà de problèmes liés à la sécurité).

    Bref, il y a du boulot :D

    • [^] # Re: De la sécurité

      Posté par (page perso) . Évalué à 1.

      Il y a une grosse différence entre un site web ou les utilisateurs peuvent publier des choses et donc tenter différent types d'attaques et une application web, destinée uniquement à un utilisateur et le laissant responsable de ces choix.

      C'est pourquoi la politique de sécurité du site lors de l'ajout d'un flux est de faire confiance au fournisseur de ce flux et de l'afficher tel-quel. Après tout, il n'y a pas de différence entre allez sur un site directement ou récupérer son flux pour l'afficher dans zenCancan.

      J'aimerais avoir (via le formulaire de contact par exemple ou ici) les constructions d'URL et les variables HTML non-échappées que tu penses non-sûr (au moins des exemples).

      Quand au attaque CSRF, a priori, y a pas beaucoup d'applications qui en sont vraiment protégées ... Et zenCancan l'est sur un premier niveau étant données que toutes les modifications ne peuvent être faite qu'en POST.

      • [^] # Re: De la sécurité

        Posté par . Évalué à 1.

        Et zenCancan l'est sur un premier niveau étant données que toutes les modifications ne peuvent être faite qu'en POST.

        Faux. Cf http://www.cgisecurity.com/csrf-faq.html#post

      • [^] # Re: De la sécurité

        Posté par (page perso) . Évalué à 3.

        Il n'y a aucune différence entre un site web dont on contrôle le contenu et un site web dont on laisse les visiteurs poser des contenus. Considérer des données comme sur et n'y appliquer aucun traitement (ne serait-ce que pour éviter les bogues liés au parasitage du format de sortie) est une erreur grave.

        Le fournisseur de flux est une donnée externe qui doit être filtrée. Si tu affiches les contenus provenant de sources externes que tu ne contrôle pas, tu t'exposes aux joies du javascript qui va venir prendre le contrôle du navigateur.

        Je n'ai pas besoin de donner d'exemple. L'ensemble des appels à header, l'ensemble des formulaires sont des portes ouvertes pour les attaques.

        Pour être plus concret, ce genre de construction est problématique :

        ./www/login-controler.php:36:   header("Location: http://$username.".DOMAIN_NAME."/auto-login.php?id=$id&verif=$verif_id");
        ./www/aggregate.php:17:header("Location:feed.php?id=$id&id_f=$id_f");
        Dans ce cas, urlencode devrait suffire. Tu as 50 appels à header pour des redirections diverses. Plutôt que de toujours construire manuellement, tu devrais faire quelques fonctions utilitaires. Par exemple :
        <?php
        function http_redirect($url)
        {
          header(sprintf('Location: %s', $url)) ;
        }
        
        function http_url($base, $path, $params, $secure=false)
        {
          $base = urlencode($base) ;
          $path = urlencode($path) ;
          $searchpart = array() ;
          // Je ne prends pas en compte les paramètres à valeur multiple
          foreach($params as $name => $value)
            $searchpart[] = sprintf('%s=%s', urlencode($name), urlencode($value)) ;
          $searchpart = implode('&', $searchpart) ;
        
          return sprintf('%s://%s%s%s'
            , $secure ? 'https' : 'http'
            , $base
            , $path
            , '?' . $searchpart) ;
        }
        
        http_redirect(http_url('example.com', '/search', array('q' => 'Ceci est fou!')) ;

        Ce n'est pas parce qu'il y a de moins en moins de personnes qui ne mettent plus de capotes que tu en fais autant. Du moins j'espère pour toi. Pour la sécurité c'est pareil. Quand je travaillais en support technique pour un hébergeur, mon plaisir quotidien était d'envoyer au client le message qui lui disait qu'il avait été détourné à cause d'un script mal fagoté, que les admin sys avaient dû suspendre. Les requêtes POST ne protègent absolument pas d'une attaque par CSRF. Il est possible de faire exécuter une requête POST par une requête AJAX sur un autre site visité dans le même navigateur, ou encore depuis un script que tu auras toi-même inclus via un flux RSS compromis. D'ailleurs, la protection contre les CSRF permet également de supprimer le bogue du double-post.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.