Diwall

Français
Télécharger 1.24.4

Limites

Ce que Diwall fait mal, et ce qu'il ne fait pas du tout. Écrit ici plutôt que découvert sur un système de production à deux heures du matin.

Diwall souffre moins de fonctions manquantes que de limites d’usage. Savoir où elles passent permet de l’employer à bon escient — et c’est aussi ainsi qu’on les repousse, une à une.

Ce à quoi il convient, et ce à quoi il ne convient pas

TâcheAdapté
Validation visuelle après un déploiementoui
Diagnostic d’un rendu défectueuxoui
Navigation et remplissage de formulaires, jusqu’à ~30 soui
Délégation d’une vérification répétitiveoui
Opération serveur de plusieurs minutesnon — voir plus bas
Modification en massenon — un appel d’API convient mieux
Tout ce qui exige un retour arrièrenon — Diwall ne sait pas annuler

La dernière ligne mérite d’être soulignée : Diwall n’a pas de retour arrière. Il exécute la liste que vous avez écrite. Un scénario mal écrit fait des dégâts réels, à la vitesse d’une machine, et rien dans l’outil ne l’arrêtera.

Opérations longues

Une opération de plusieurs minutes s’y prête mal. On peut relever le délai d’attente, mais le principe reste un seul appel et une capture finale : vous voyez la fin, pas le milieu. interval_capture fournit des images intermédiaires ; c’est une suite d’images, pas une vue en direct.

Plus grave : un délai dépassé sur une action lente qui modifie quelque chose ne signifie pas qu’elle a échoué. Le serveur continue de travailler après que le client a cessé d’attendre. Une nouvelle tentative « propre » a déjà produit un second clone identique.

L’opération prend plusieurs minutes →

Ce que la perception n’atteint pas

Dans une iframe, rien n’est numéroté. Set-of-Mark s’arrête au bord du cadre. Les deux actions dédiées aux iframes le franchissent, mais c’est à vous de fournir le sélecteur CSS intérieur — et si le cadre vient d’une autre origine, la page ne vous le donnera pas.

Un shadow root fermé reste fermé. --shadow-dom traverse les racines ouvertes ; les racines fermées le sont par conception, et aucune option n’y change rien.

Les éléments sans représentation sémantique — une image cliquable, un canevas, une zone graphique — n’ont rien à exposer dans l’arbre d’accessibilité. C’est là qu’un modèle de vision devient nécessaire, et non plus facultatif.

Ce qui ne marche pas à tous les coups

La détection de WAF repose sur des mots-clés. Elle peut signaler une page qui n’est pas bloquée. Elle est rapportée sous forme de compteur, jamais comme un verdict, et --ignorer-waf existe pour le cas où vous avez vérifié qu’elle se trompe.

La comparaison de pixels a un seuil de bruit d’environ 0,19 %. Deux rendus d’une page inchangée diffèrent déjà d’autant. Un changement réel plus petit que ce seuil lui échappe.

Un modèle de vision local en dit moins qu’un modèle hébergé. Sur un cas où rien n’avait changé, il a renvoyé une fois une chaîne vide au lieu d’une phrase explicite — le verdict était juste, l’explication absente, et rien dans la documentation ne couvrait ce cas à l’époque.

Les numéros Set-of-Mark valent pour une capture. Ils ne sont pas stables d’une session à l’autre, et une page qui change entre la capture et le clic peut les déplacer. Depuis la 1.24.0, la résolution est hybride et signale la dérive dans boussole.respect.som_derive_detectee au lieu de cliquer en silence sur le mauvais élément — mais pour se fier à un numéro, il faut toujours capturer Set-of-Mark dans le même scénario, juste avant.

Deux limites qui sont des choix, pas des lacunes

Elles ne seront pas corrigées : les corriger casserait quelque chose qui vaut davantage.

Votre première exécution échoue tant que le guide n’est pas lu. C’est délibéré. C’est la réponse à un incident de sécurité documenté, et le retirer rétablirait l’incident. Ce que le verrou demande à un agent →

L’identité déclarée ferme des portes. --stealth existe et vous pouvez l’utiliser ; le comportement par défaut reste honnête. Ce que cela coûte est mesuré ci-dessous plutôt qu’affirmé.

Ce que coûte l’identité déclarée, mesuré

Le 27 juin 2026, une recherche d’achat ordinaire sur des sites marchands francophones — pas un panel artificiel monté pour les besoins de la démonstration. Diwall 1.14.0, avant l’existence de --stealth.

RésultatSitesPart du panel
Bloqué, HTTP 403 (WAF)939 %
Délai dépassé, aucune réponse HTTP626 %
404, adresse devinée fausse522 %
Accessible, contenu renvoyé28,7 %

23 sites ont été visés ; 22 résultats ont été enregistrés. Le résultat du vingt-troisième n’a jamais été noté, et la liste des adresses n’a pas été conservée non plus : il ne peut donc pas être retrouvé. Les parts ci-dessus sont calculées sur le panel visé, c’est pourquoi leur somme s’arrête à 95,7 % et non à 100 %. Nous préférons publier l’écart que l’effacer par un arrondi.

Les deux sites qui ont répondu étaient rendus côté serveur, sans WAF (pare-feu applicatif) devant eux. Les sites bloqués étaient de grandes enseignes et des places de marché de produits reconditionnés.

Ce que le web refuse →

Ce qu’aucune option de ce projet ne change

Diwall ne déjoue pas l’identification par empreinte TLS (JA3/JA4), ni l’analyse comportementale d’un service anti-robot commercial.

--stealth passe les contrôles d’empreinte de navigateur les plus simples — 31 contrôles réussis avec, contre 18 sans sur un banc d’essai public — et c’est tout ce qu’il prétend faire. Un 403 qui persiste ensuite signale une analyse d’empreinte plus poussée, et rien ici n’y changera rien.

Le dire ne coûte rien. Le découvrir en pleine tâche coûte une soirée.

Et ce qu’il ne prétend pas faire

Diwall n’est pas plus prudent que le scénario que vous lui donnez. Il ne vérifie pas votre intention, il ne devine pas ce que vous vouliez dire, et il ne s’arrête pas avant une action irréversible.

Tout le reste de ce site décrit ce qu’il perçoit. Cette page dit ce qu’il ne peut pas faire — et il faut les deux pour décider de confier un navigateur à un agent.

Ce que Diwall ne fait pas dans votre dos →