Envoyé par : Cheloute
Date : 13/06/2010 13:42
Bonjour tout le monde!
J'ai un petit besoin concernant une navigation un peu particulière...
J'aimerais faire une extension qui me permette d'ajouter un paramètre d'URL à toutes les URL sortantes de mon navigateur préféré. En clair, si je saisis http:// www.xulfr.org/ dans la barre d'URL, j'aimerais non seulement que mon extension m'ajoute ?monparam="toto" à la fin de l'URL, mais également à toutes les requests qui suivent.
Par exemple, je cherche à afficher la page http://www.toto.com/ toto.com à besoin de l'image toto.com/toto.jpg et du javascript toto.com/toto.js
Donc quand on tape http://www.toto.com/, on envoie cette request, qui nous donne une première réponse, qui elle va appeler http://www.toto.com/toto.jpg et http://www.toto.com/toto.js.
Bon, ce que j'aimerais faire est donc ajouter automatiquement à ces 3 urls un paramètre (du genre ?a=b par exemple...
Ainsi si j'appelle http:www.toto.com/, sera appelé http://www.toto.com/?a=b, puis http://www.toto.com/toto.jpg?a=b et http://www.toto.com/toto.js?a=b.
Pour que ce soit plus simple, je commence bien évidemment la programmation d'extension FF (c'est tellement plus drôle...) mais ai quelques connaissances JS (c'est déjà ça...)
quelqu'un aurait-il donc 5 minutes à me consacrer pour m'expliquer comment on peut capturer et modifier toutes ces URL? je n'ai trouvé pour le moment que le moyen de capturer l'URL principale sur un nouvel accès à une page, mais ça ne me change pas celles des requests sous-jacentes :(
Merci beaucoup pour votre aide !
Envoyé par : mothsart
Date : 14/06/2010 16:48
Avant toute chose, je pense qu'il serait bien que tu exprimes le pourquoi du comment. Ma première intuitions, c'est que tu ne comprends pas vraiment le fonctionnement d'un serveur, de son langage apparenté et de ses interactions avec le navigateur...
Pourquoi envoyer une variable à une image par exemple sachant que la page renvoyer par ton serveur à ton adresse http://www.toto.com contient cette image et son javascript référant. Si l'image ou le script javascript dépend de cette variable... autant tout modifié sur une requête.
Dans tous les cas, renseignes-toi sur l'ajax et les bibliothèques tel que jquery qui te permettrons paramétrer tes requêtes HTTP avec des variables.
Envoyé par : Cheloute
Date : 15/06/2010 08:26
Ha ha, si je sais très bien ce que je fais (ou plutôt veux faire...)
Ça peut paraître "bizarre" en effet de vouloir rajouter un paramètre de façon aussi arbitraire effectivement, mais en fait cela a toute sa logique. C'est juste qu'il me faudrait des jours entiers pour détailler le pourquoi du comment.
J'ai donc résumé avec un exemple simpliste qui me donne les premières briques pour ensuite le développer et l'amener à faire ce que je veux.
Bref, je cherche donc simplement à obtenir le comportement décrit dans mon premier post, même s'il semble incohérent à première vue...
Envoyé par : mothsart
Date : 15/06/2010 15:12
Einstein lui même disait que si quelqu'un ne sait pas expliquer un concept à un enfant de 6 ans, c'est qu'il ne le comprend pas vraiment...
Alors, des jours entiers... ça me parait abusif : ton projet n'est pas non plus commandité par des services secrets à ce que je sache...
Bon, sur une question vague, ne t'attend pas à une réponse précise...
Ton extension, je l'exprimerais comme ceci :
1/ Requête GET avec javascript (ajax) sur http://toto.com?a=b 2/ Récupération de la sortie (contenu) dans une variable 3/ Parcourir mon contenu et à chaque url efectuer la modification de l'url du contenu en rajoutant le ou les paramêtres 4/ Afficher le résultat : les requêtes aux ressources seront alors automatiquement envoyer par firefox.
Envoyé par : Cheloute
Date : 17/06/2010 09:56
Bon, ok j'essaie de te faire un résumé, même si je persiste en disant qu'il est inutile.
Le but de cette extension "maison" est de tester la solidité d'un proxy que l'on est en train de monter à une liste blanche d'URL. Qu'est-ce que ma liste blanche d'URL.
On prend un système de proxy avec une blacklist, whitelist, et un quota pour le reste des sites demandés. Une partie des sites de la blacklist fait un filtrage par domaine, cad que la page demandée est sur un domaine X présent dans la blacklist, elle est refusée (test supposé prédominant). Une autre partie est un filtrage d'URL, c'est à dire que si la ressource demandée a dans son URL une chaine identifiée correspondant à une URL (ou pattern d'URL) de la blacklist, elle sera refusée. Idem pour la whitelist, on a des domaines autorisés, et des URL autorisées, non soumise au quota.
Le reste des ressources accessibles est soumis à une politique de quota. Quota non atteint : plein accès, sinon, accès coupé.
Or, la plupart des serveurs assimilent des paramètres inutiles et te renvoient la ressources attendue malgré des paramètres douteux (eh oui, dur...)
Donc, un site bloqué par quota par exemple, il suffirait de lui passer un paramètre contenant une URL "blanche" pour le débloquer, la reconnaissance étant faite sur localisation d'un pattern autorisé, et l'URL devient passante sans quota. Idem pour tous les liens sous-jacent (d'où l'appel d'une image, CSS, javascript externe, etc, etc avec un paramètre "inutile" dans une logique web. Et pire avec la blacklist, un domaine black avec un paramètre "URL white", on ne voit pas très bien ce qu'il se passe.
Une telle extension nous permettrait de tester la fiabilité de notre solution en automatisant notre batterie de test (l'extension ne permettra pas seulement de tester l'accès ou non à tel ou tel site, bloqué ou non, soumis à quota ou non, mais implémentera une batterie de test automatique permettant de sélectionner une poignée d'URL blacklistées ou whitelistée avec de les coupler automatiquement avec tous les types de filtrage possible sur notre proxy).
Voila en résumé le pourquoi du comment en essayant d'être le plus clair possible. Donc oui j'ai très bien compris ce que je veux faire, sauf que je ne sais pas très bien comment le faire. La partie me posant problème étant celle exposée au début, comment capturer toutes les URL sous-jacentes d'un flux HTML entrant (CSS, images, javascript externes, liens internes ET externes, ressources - flash par exemple, applet, ... - et liens potentiellement générés en javascript également) afin de pouvoir les modifiers à la volée en y rajoutant un paramètre au moment de leur envoi. Firebug propose un panneau permettant de les lister, j'imagine qu'il est donc possible de les intercepter au moment où elles sortent pour les modifier en y rajoutant mon sésame (ou mon non-sésame). Or en tentant de me plonger dans le code de Firebug, j'avoue m'être un peu fait peur et préfère tenter la façon plus "efficace" au niveau temps et demander d'abord sait faire quelque chose de cette trampe avant de me résigner à décortiquer une extension aussi coplexe que firebug.
Et avant d'avoir un quelconque commentaire sur les choix de filtrage et les limites dudit filtrage, ce n'est ni mon idée ni ma responsabilité mais une commande client, et comme on dit, le client est roi :)
Il n'est plus possible de poster des messages dans ce forum.
Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.
Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™
sont des marques de la fondation Mozilla.