Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Interpréter le javascript

13 réponses
Avatar
ma2thieul
Bonjour tout le monde,
C'est mon premier post sur google groups! J'espère que je vais être
compréhensible! :D
Voilà, je suis en coeur de réseau (proxy) et je regarde passer les
codes sources des pages. Je cherche à repérer les éléments qui seront
demandés par le navigateur chez le client. Par exemple, lorsque je
vois:
<img src="toto.jpg">
je sais que le navigateur va demander l'image toto.jpg. Pour cela, je
repère dans le code les balises img (par exemple). Tout cela, ca ne
pose pas de problème pour HTML mais javascript.... :(

Voici différents exemples qui me posent problèmes:
-> document.write('<im'+'g src='+'"toto.jpg"')
-> document.write('<img src="toto'+navigateur+'.jpg"')
-> balise='<img src';
balise+='="toto.jpg"';
document.write(balise);
-> ...
et toutes les combinaisons... (c'est peut-être mal écrit mais je ne
connais pas beaucoup le javascript :) ).
La variable navigateur je ne peux pas la connaître car je suis en
coeur de réseau, mais si déjà, je peux obtenir toto*.jpg, ca serait
bien.
Je ne programme pas en javascript mais en C++.
Est-ce que vous voyez un moyen pour interpreter le javascript? Bien
sûr, il y a l'idée de recréer un navigateur, mais... j'ai téléchargé
les sources de mozilla et ca me parait compliqué. Est-ce que vous avez
une idée? même si elle ne permet de résoudre qu'un des cas, ca
m'intéresse...

Merci beaucoup

ma2thieu

10 réponses

1 2
Avatar
Pierre Goiffon
"ma2thieu" a écrit dans le message de
news:
Voilà, je suis en coeur de réseau (proxy) et je regarde passer les
codes sources des pages. Je cherche à repérer les éléments qui seront
demandés par le navigateur chez le client. Par exemple, lorsque je
vois:
<img src="toto.jpg">
je sais que le navigateur va demander l'image toto.jpg. Pour cela, je
repère dans le code les balises img (par exemple). Tout cela, ca ne
pose pas de problème pour HTML mais javascript.... :(

Voici différents exemples qui me posent problèmes:
-> document.write('<im'+'g src='+'"toto.jpg"')
-> document.write('<img src="toto'+navigateur+'.jpg"')
-> balise='<img src';
balise+='="toto.jpg"';
document.write(balise);
-> ...
et toutes les combinaisons... (c'est peut-être mal écrit mais je ne
connais pas beaucoup le javascript :) ).
La variable navigateur je ne peux pas la connaître car je suis en
coeur de réseau, mais si déjà, je peux obtenir toto*.jpg, ca serait
bien.
Je ne programme pas en javascript mais en C++.


Tout dépend sur quel environnement votre sniffer doit tourner ? Sur Windows,
vous pouvez réutiliser l'interpréteur WSH ou simplement IE sans doute. Par
ailleurs, il doit exister déjà des logiciels Open Source qui permettent de
réaliser cela non ?

Avatar
loufoque
ma2thieu wrote:

j'ai téléchargé
les sources de mozilla et ca me parait compliqué.


L'interpréteur javascript de Mozilla est disponible en standalone.

Avatar
ma2thieul
"Pierre Goiffon" wrote in message news:<40d93be6$0$14480$...
Tout dépend sur quel environnement votre sniffer doit tourner ? Sur Windows,
vous pouvez réutiliser l'interpréteur WSH ou simplement IE sans doute. Par
ailleurs, il doit exister déjà des logiciels Open Source qui permettent de
réaliser cela non ?


Merci Pierre!

Le proxy est sur Linux. J'ai cherché quelques logiciels opensource qui
faisaient des choses similaires:
-> Mozilla et en particulier SpiderMonkey qui s'occupe du javascript.
-> njs-javascript.
Mais leur code est très conséquent. :-/ je n'ai pas trop regarder
encore comment ils marchaient. Je ne sais pas si je peux les exploiter
tels quels. Ils ne me faut pas une interface de test mais un outil qui
en entrant du javascript me donne le code HTML correspondant par
exemple...
Est-ce que vous connaissez d'autres outils?
Est-ce que vous connaissez une autre solution, une autre idée?

Merci en tout cas!

Ma2thieu

Avatar
Pierre Goiffon
"ma2thieu" a écrit dans le message de
news:
Le proxy est sur Linux
(...)

Ils ne me faut pas une interface de test mais un outil qui
en entrant du javascript me donne le code HTML correspondant par
exemple...


Oui j'avais bien compris le besoin. Je pense que sous Windows, utiliser IE
comme objet COM permettrait d'arriver à ce que vous souhaitez. Mais sous
Linux ?? Enregistrer le fichier en local et passer Lynx ? (hum oui bon je
sais :D) Sérieusement, utiliser la librairie de Mozilla pourrait être une
bonne idée - même si son code est conséquent, vous n'avez peut être pas
besoin de descendre dedans pour l'intégrer à votre application ?

Bon bref, je ne suis pas d'une grande aide mais vous souhaites bonne chance
et bon courage !

Avatar
Johann Dantant
"Pierre Goiffon" a écrit dans le message de
news:40d9b51b$0$14506$
"ma2thieu" a écrit dans le message de
news:
Le proxy est sur Linux
(...)

Ils ne me faut pas une interface de test mais un outil qui
en entrant du javascript me donne le code HTML correspondant par
exemple...


Oui j'avais bien compris le besoin. Je pense que sous Windows, utiliser IE
comme objet COM permettrait d'arriver à ce que vous souhaitez. Mais sous
Linux ?? Enregistrer le fichier en local et passer Lynx ? (hum oui bon je
sais :D) Sérieusement, utiliser la librairie de Mozilla pourrait être une
bonne idée - même si son code est conséquent, vous n'avez peut être pas
besoin de descendre dedans pour l'intégrer à votre application ?



Est-ce que vous pourriez préciser un peu mieux le besoin réel ? Est-ce qu'il
s'agit de faire une analyse "a posteriori" et une par une des pages mises en
caches par le proxy (auquel cas la solution d'utiliser le moteur de script
d'un navigateur certainement la mieux adaptées), ou de suivre le flux "au
fil de l'eau" pour filtrer certains éléments ? Dans ce second cas, il n'y a
pas forcément besoin d'un moteur de script complet, mais plutôt d'un parser
avec une grammaire expurgée (pour garder des performances compatibles avec
le flux) qui permettra de reconstituer les mots-clés à identifier ou à
filtrer. Qu'en est-il réellement ?

-- J.D.
BC> les règles (évitez le terme de lois qui est seulement juridique)
Comme la loi de la pesanteur et celle de l'emmerdement maximum, deux
lois dont vous représentez la synthèse : vous êtes lourd et chiant.
-+- FF in http://neuneu.mine.nu : Dura crétinex sed neuneutex.


Avatar
ma2thieul
Sérieusement, utiliser la librairie de Mozilla pourrait être une
bonne idée - même si son code est conséquent, vous n'avez peut être pas
besoin de descendre dedans pour l'intégrer à votre application ?


Je crois que c'est ce que je vais faire... A priori, c'est une API
donc je dois pouvoir l'utiliser comme ça.


Bon bref, je ne suis pas d'une grande aide mais vous souhaites bonne chance
et bon courage !


Si! Ca m'a ouvert des idées! Merci beaucoup! :o)

Ma2thieu

Avatar
ma2thieul
loufoque wrote in message news:<cbc0lv$v1k$...

L'interpréteur javascript de Mozilla est disponible en standalone.


Effectivement, je viens de voir ca. A priori, on doit pouvoir utiliser
l'API comme ça. Est-ce que par hasard, vous connaissez des exemples
d'utilisations?

Je suis en train de regarder comment on peut intéragir avec cette API
et j'ai ça:
http://www.mozilla.org/js/spidermonkey/apidoc/jsguide.html

Merci pour votre aide.

Ma2thieu

Avatar
ma2thieul
de suivre le flux "au
fil de l'eau" pour filtrer certains éléments ? Dans ce second cas, il n'y a
pas forcément besoin d'un moteur de script complet, mais plutôt d'un parser
avec une grammaire expurgée (pour garder des performances compatibles avec
le flux) qui permettra de reconstituer les mots-clés à identifier ou à
filtrer. Qu'en est-il réellement ?



C'est exactement ca que je veux faire!!! :) pour à la fin, filtrer les
éléments comme toto.jpg dans le premier post.
Voilà j'ai du ne pas être assez précis. :)
Il ne me faut en effet pas toute la technologie d'un interpréteur tel
que celui de mozilla mais juste reconstituer les morceaux.
Est-ce que vous connaissez une méthode ou des exemples pour faire ca?

Merci beaucoup

Ma2thieu

Avatar
Pierre Goiffon
"ma2thieu" a écrit dans le message de
news:
de suivre le flux "au
fil de l'eau" pour filtrer certains éléments ? Dans ce second cas,
il n'y a pas forcément besoin d'un moteur de script complet, mais
plutôt d'un parser avec une grammaire expurgée


C'est exactement ca que je veux faire!!! :) pour à la fin, filtrer les
éléments comme toto.jpg dans le premier post.


Mhh, n'y aurait-il pas un moyen d'agir ensuite ? Cad, d'envoyer la page
telle quelle au navigateur, de lui laisser générer les requètes HTTP mais de
lui envoyer une certaine réponse sans aller chercher la ressource ?

Au fait j'y songe, c'est exactement le fonctionnement d'un filtre anti pub
comme Proximitron... qui je crois est techniquement un proxy.


Avatar
ma2thieul
Mhh, n'y aurait-il pas un moyen d'agir ensuite ? Cad, d'envoyer la page
telle quelle au navigateur, de lui laisser générer les requètes HTTP mais de
lui envoyer une certaine réponse sans aller chercher la ressource ?


Je ne vois pas trop ce que tu veux dire. Tu me conseilles de bloquer
les requêtes qui seraient émises par le navigateur en fonction du
javascript? oui mais comment les déterminer ces requêtes. C'est pour
ca que j'essaye de lire le code à l'avance, pour les repérer ensuite.
:-/


Au fait j'y songe, c'est exactement le fonctionnement d'un filtre anti pub
comme Proximitron... qui je crois est techniquement un proxy.


Oui! effectivement! Je veux faire à peu près ca. Mais le projet a
l'air d'être à moitié abandonné car j'ai du mal à trouver à accéder
aux sites... Est-ce qu'il supporte le javascript?
Il me faudrait quelque chose comme le propose Johann Dantant plus
haut...

Merci pour votre aide!

Ma2thieu

1 2