PROJET AUTOBLOG


Tontof

Site original : Tontof

⇐ retour index

Votre avis nous intéresse

samedi 27 avril 2013 à 13:44
Je me pose plusieurs questions concernant KrISS feed et j'aimerais savoir ce que vous en pensez avant de me lancer dans la modification du code et ainsi me retrouver dans cette situation : http://bobineau.blogspot.fr/2013/04/72.html (via).

En gros, j'ai des questions a vous poser sur :
- certains problèmes de flux ;
- le logo de KrISS feed mais pas que ;
- les certificats pour les flux https ;
- les attaques XSS ;
- le multilingue.


Les problèmes de flux :
Je ne sais pas si tout le monde est conscient du problème, alors je vais essayer de donner quelques précisions qui vous permettront peut-être de comprendre pourquoi des fois ça marche et des fois ça ne marche pas.

Tout d'abord, il faut savoir que les flux RSS ça génère beaucoup de trafic (et quand Google Reader aura définitivement fermé, ça sera encore pire, car je pense que son rôle intermédiaire était très important dans la limitation de ce trafic lié au flux RSS et peut expliquer aussi pourquoi il ferme ; c'est tout ce trafic qu'ils n'auront plus à gérer eux-mêmes et qui leur coûtait des sous).

Il faut également savoir qu'il y a des gens qui, de mon point de vue, ne se rendent pas vraiment compte qu'ils peuvent être une vraie plaie pour les serveurs. Un petit exemple d'une personne qui a réglé son lecteur de flux (en l'occurrence Thunderbird) à télécharger mon flux RSS toutes les minutes. Mon serveur ovh mutualisé a de la chance, son ordinateur n'est pas allumé toute la journée, mais il fait quand même des bonnes journées (environ 8h - minuit). Un autre point positif, il gère la compression et mon flux qui fait environ 150 ko n'est transmis que pour 30 ko.

Faisons un rapide calcul pessimiste. Une personne qui télécharge mon flux toutes les minutes sans la compression et toute la journée, ça nous donne :
24*60*150 = 216 000 ko
Vous vous rendez compte ? 216 Mo pour une seule personne par jour ?

Quand on sait que je poste moins d'un article par jour, ça fait pas mal d'octets inutilement transférés. Tout ça pour quoi ? Avoir mon article dans la minute... Youhou, vive le monde hyper connecté. Personnellement, ça ne me surprend pas tant que ça que Free, Orange en arrivent à brider Youtube... et que Deutsche Telekom veut limiter à 75 Go par mois.

Alors ce n'est pas très grave en soi, moi ça me dérange pas personnellement, je suis sur un mutualisé OVH. Mais si je m'auto-hébergeais sur ma connexion perso, je réagirais sûrement différemment et je pense que je serais obligé de blacklister de temps en temps ce genre de personne.

Et ben figurez-vous que c'est ce que font certains sites et du coup vous vous dîtes, KrISS feed c'est tout pourri je peux pas ajouter ce flux. Désolé, mais la faute ne vient pas toujours de KrISS feed :-)

Les serveurs peuvent réagir différemment. Pour cela, je vais prendre 2 exemples : Google avec Youtube et Live Journal.

Certains sites comme http://www.livejournal.com ont une politique assez surprenante même si elle est compréhensible. Dans le code de leurs différents flux, ils ont quand même réussi à mettre ce commentaire :
If you are running a bot please visit this policy page outlining rules you must respect. http://www.livejournal.com/bots/ (via : http://linux.livejournal.com/data/rss)

Je trouve ça assez drôle, car les flux RSS ont justement pour but d'être lu par des robots, pas par des humains, alors un commentaire dans un flux RSS, euh...

Pour résumé, s'ils vous suspectent d'être un robot trop gourmand, ils vous bannissent et KrISS feed, mais n'importe quel autre lecteur de flux, ne sera plus capable de récupérer leur flux et vous obtiendrez un timeout :-(

Alors des gens me disent qu'ils ne peuvent pas ajouter tel ou tel flux alors qui marche sous Google Reader. Dans cet exemple concret de live journal, la réponse est simple, le serveur vous a banni. Quand c'est sur un serveur perso, c'est moins fréquent, mais sur un mutualisé, ça l'est un peu moins. Juste pour votre information Google Reader ne fait la demande de flux que toutes les heures et bizarrement vous ne vous êtes jamais plein en disant que c'était nul parce que vous n'aviez pas l'info en temps réel (Ah... on me dit que si, vous vous plaignez tout le temps :-p).

D'autres serveurs, comme ceux de Youtube, vous bannissent temporairement et vous obtenez fréquemment l'erreur : Problem with last update. En fait, je soupçonne Youtube, pour leur éviter un trafic inutile, de vous bannir tant qu'il n'y a pas de nouvelles vidéos. Il garde donc une information sur les demandes de flux et gère un historique de leur côté. C'est difficile de savoir vraiment ce qu'il en est, mais je pense que c'est ce qu'ils font (et je trouve assez malin de leur part pour limiter ce trafic inutile). Ça veut dire que si KrISS feed vous indique un problème lors d'une mise à jour, il ne faut pas trop vous inquiéter, c'est tout à fait normal et il y a de grandes chances pour qu'il n'y ait tout simplement pas eu de nouvelles vidéos.

Donc en gros comme pour Live Journal, Youtube vous bannit, mais contrairement à Live Journal, je pense que c'est volontairement bien étudié et il ne faut donc pas trop vous inquiéter si vous avez un Problem with last update ou que vous n'arrivez pas à ajouter une vidéo du premier coup.

Dans l'évolution de KrISS feed, je ferai des messages plus explicites pour distinguer les problèmes de flux (mal formés) et les problèmes liés à la récupération du flux (genre timeout).

J'ai quand même quelques interrogations sur comment je peux aussi essayer d'améliorer ça. Ma question concerne donc l'amélioration du cache, l'utilisation des ttl (time to live qui semble être ignoré de toutes les lecteurs de flux), e-tag, last-modified etc. Certains flux comme ceux générés par shaarli ne tiennent pas compte de ces informations et retournent systématiquement le flux rss mis à jour. Alors peut-être que c'est inutile mais je me demandais, s'il fallait essayer d'intégrer ça pour soulager les serveurs qui pourront répondre un code 304 (not modified) plutôt que d'envoyer le flux à chaque fois. J'attends vos avis sur la question.


Un logo KrISS ?
Vous êtes plusieurs à m'avoir demandé un favicon pour KrISS feed et comme je suis indécis, je vous fais ici quelques propositions. En tête, je n'avais pas que KrISS feed, mais l'idée de plusieurs outils KrISS, parce qu'avec le temps j'espère bien vous proposez encore plus d'outils avec la même philosophie :
image/svg+xml<style type="text/css" id="style3859"/>

- La première icône, c'est juste un K (pour KrISS) formé à l'aide d'un T (de Tontof). J'aime assez la forme, mais je ne vois pas trop comment je pourrais l'adapter pour différents outils.
- La deuxième est un K qui forme la moitié d'un carré et qui permet d'inclure une autre icône, comme celle du RSS. En faisant la symétrie on peut écrire les initiales KF pour KrISS feed.
- La troisième est identique à la deuxième avec une branche prolongée pour former en plus le T de Tontof. L'icône s'apparente au logo peace and love.
- La quatrième est un K formé d'un demi-cercle et d'un demi carré.

Voili voilou, j'ai fait ça vite fait pour vous donner une idée et savoir ce que vous en pensez. Je reste ouvert à toute proposition.


Les certificats SSL :
Certains d'entre vous ne peuvent pas ajouter certains flux https à cause de problème de certificats qui ne sont pas installés sur le serveur. Curl a une option pour ignorer ça, mais je ne pense pas que c'est une bonne idée de l'ajouter par défaut.
<?php curl_setopt($chCURLOPT_SSL_VERIFYPEERfalse); ?>

Une option, un plugin, tout est possible, qu'en pensez-vous ?


Les attaques XSS :
Actuellement, il n'y a aucune modification du contenu d'un flux. Si ce dernier ajoute du code javascript, il sera exécuté. Je voulais savoir si vous aviez des idées pour limiter les risques. Je connais http://htmlpurifier.org mais je cherche quelque chose de plus simple et léger. Des idées ?


KrISS feed en français :
Je vous ai dit que la version 8 serait multilingue, mais je voulais savoir si vous pensez que c'est plus intéressant d'avoir un fichier index par langue ? Toutes les langues disponibles dans le même fichier index ou l'ajout des langues grâce aux plugins ?

Le débat est ouvert.