Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !
wBlock — The next-generation ad blocker for Safari. Free and open source on macOS, iOS, iPadOS, and visionOS, with 750,000 rules, userscripts, userstyles, and an element zapper. | Kitploit
The next-generation ad blocker for Safari. Free and open source on macOS, iOS, iPadOS, and visionOS, with 750,000 rules, userscripts, userstyles, and an element zapper.
La fin des conneries de blocage de pub sur Safari.
Un bloqueur de contenu Safari pour macOS, iOS, iPadOS et visionOS.
750 000 règles réparties sur 5 extensions, stockage Protocol Buffer, compression LZ4 et synchronisation iCloud.
[!NOTE]
Vous cherchez une comparaison détaillée ? Consultez mon guide de comparaison pour voir comment wBlock se positionne face aux autres bloqueurs de contenu Safari.
Fonctionnalités
Performance
Capacité de 750 000 règles réparties sur 5 extensions de blocage de contenu Safari par plateforme (150 000 chacune)
~40 Mo de RAM au repos — l'API native de blocage de contenu de Safari exécute les règles hors processus
Protocol Buffers + LZ4 pour le stockage des filtres ; les E/S en flux continu maintiennent une faible utilisation mémoire pendant la compilation
Requêtes conditionnelles HTTP (If-Modified-Since/ETag) afin que les mises à jour ne téléchargent que ce qui a changé
Synchronisation iCloud des sélections de filtres, listes personnalisées, userscripts et liste blanche entre appareils
Modification de contenu
Element Zapper (macOS, iOS, iPadOS, visionOS) — sélectionnez et masquez visuellement des éléments de page dans Safari
No Autoplay (macOS, iOS, iPadOS, visionOS) — maintient les vidéos et l'audio en pause jusqu'à ce que vous appuyiez ou cliquiez dessus, stoppant la lecture automatique en défilement/feed ; activez-le globalement depuis la popup de la barre d'outils Safari et autorisez la lecture automatique par site lorsqu'une page en a besoin
Tube Cleaner & Player Cleaner — userscripts distants optionnels téléchargés par défaut depuis le dépôt wBlock-userscripts ; ils transforment les éléments média existants en lecteurs Safari natifs avant le premier rendu, restaurant le Picture-in-Picture et la lecture en arrière-plan. Ils se mettent à jour indépendamment de la version de l'application ; les règles de blocage de contenu de wBlock gèrent les publicités séparément
Moteur Userscript avec API Greasemonkey (GM_getValue, GM_setValue, GM_xmlhttpRequest)
Prise en charge Userstyle — installez des thèmes UserCSS (.user.css) appliqués nativement en CSS, sans wrapper JS
Listes de filtres personnalisées via URL, collage ou import de fichier — prend en charge toute liste de blocage au format AdGuard
Recherche dans la barre d'outils pour trouver rapidement filtres et userscripts
Distribution automatique des règles sur les 5 emplacements de blocage de contenu pour une couverture maximale
Blocage
Blocage des requêtes réseau — publicités, traqueurs, bannières de cookies, nuisances
Injection CSS pour le filtrage cosmétique et le masquage d'éléments
Captures d'écran
Gestion des userscripts Gérez les paywalls, YouTube Dislikes, et plus encore
Paramètres et personnalisation Configurez les mises à jour automatiques, notifications et préférences
Interface iOS Blocage complet sur iPhone
Interface iPadOS Blocage complet sur iPad
Implémentation technique
Architecture principale
Protocol Buffers (libprotobuf) avec compression LZ4 pour la sérialisation des filtres
E/S asynchrones avec concurrence Swift (async/await, Task, isolation Actor)
Sérialisation en flux continu vers le disque pour minimiser l'utilisation mémoire de pointe pendant la compilation
5 extensions de blocage de contenu Safari par plateforme (capacité maximale de l'API Safari)
Intégration du framework SafariServices pour le blocage de contenu déclaratif
Dépendances et normes
SafariConverterLib v4.3.0 pour la conversion des règles AdGuard vers Safari
Moteur de scriptlets AdGuard intégré pour les techniques de blocage avancées
Concurrence Swift (async/await, Task, isolation Actor) avec paramètres Swift 5 au niveau du projet
Prise en charge de VoiceOver et Dynamic Type dans toute l'application SwiftUI
SwiftProtobuf pour le format de stockage des filtres multiplateforme
Soutenir le développement
wBlock est gratuit et open source.
Si vous souhaitez soutenir le projet :
FAQ
Comment wBlock se compare-t-il aux autres bloqueurs de publicités ?
Consultez notre guide de comparaison face à uBlock Origin Lite, Wipr 2 et les applications Safari d'AdGuard.
Dois-je installer wBlock depuis l'App Store ou depuis la version DMG/Homebrew ?
La version App Store est généralement préférée car elle gère automatiquement les mises à jour de l'application. La version DMG/Homebrew offre les mêmes fonctionnalités et est disponible pour les utilisateurs qui préfèrent installer en dehors de l'App Store.
Dois-je utiliser wBlock en parallèle d'un autre bloqueur de publicités ?
Non. Utilisez un seul bloqueur de contenu polyvalent à la fois.
Aucune étude contrôlée ne prouve que chaque combinaison possible de bloqueurs de publicités nuit à chaque page. Cependant, l'architecture des navigateurs et la documentation des extensions soutiennent l'évitement des bloqueurs redondants :
Les extensions peuvent apporter des modifications conflictuelles. Mozilla documente que lorsque deux extensions tentent des modifications conflictuelles sur le même en-tête de réponse, une seule modification peut réussir. Plusieurs bloqueurs peuvent donc produire un comportement dépendant de l'ordre plutôt qu'une combinaison prévisible de leurs protections. Voir la documentation webRequest de Mozilla.
L'interception de requêtes a des coûts de calcul mesurables. Chromium décrit les coûts de sérialisation, de communication inter-processus, de processus persistant et de traitement des réponses d'extension associés aux gestionnaires de requêtes bloquants. L'exécution de systèmes de filtrage redondants duplique au moins une partie de l'évaluation des règles et du traitement des pages. Voir l'explication de Chromium sur Web Request et Declarative Net Request et l'aperçu Manifest V3 de Chrome.
Les mainteneurs des principaux bloqueurs déconseillent explicitement l'empilement. Le README officiel d'uBlock Origin indique : « N'utilisez PAS uBO avec un autre bloqueur de contenu. » Il explique qu'un autre bloqueur peut empêcher les fonctionnalités de confidentialité ou de désamorçage anti-bloqueur d'uBO de fonctionner correctement. Voir la documentation officielle d'uBlock Origin.
Les modes de défaillance documentés incluent un chargement plus lent et des fonctionnalités cassées. AdGuard avertit que deux bloqueurs peuvent se disputer les mêmes requêtes, provoquant un chargement de page plus lent, des sites cassés ou des problèmes de lecture vidéo. Voir les recommandations d'AdGuard.
Pour wBlock spécifiquement, un autre bloqueur rend également le dépannage impossible. Lorsqu'une publicité survit ou qu'un site casse, les règles réseau, les règles cosmétiques, les scriptlets, les exceptions ou l'ordre d'exécution de l'un ou l'autre bloqueur peuvent être en cause. Le second bloqueur est donc une variable parasite. Désactivez tous les autres bloqueurs de contenu avant de signaler un problème wBlock.
Installer des bloqueurs redondants n'est pas une défense en profondeur lorsque les deux outils se disputent la même couche d'interception. C'est une expérience non contrôlée sans groupe témoin.
Puis-je utiliser mes propres listes de filtres ?
Oui. Vous pouvez ajouter toute liste de filtres compatible AdGuard par URL, coller des règles directement ou importer depuis un fichier.
Dois-je activer plus de listes de filtres pour un meilleur blocage ?
Généralement non. Les valeurs par défaut recommandées couvrent déjà la plupart des publicités et traqueurs, et la plupart des autres listes polyvalentes se chevauchent avec elles. En activer davantage consomme surtout la limite de règles de Safari et augmente le risque de casse de sites. Les exceptions sont les filtres Annoyances (bannières de cookies, pop-ups, widgets sociaux) et les filtres régionaux pour les sites non anglophones, qui couvrent des éléments non couverts par les valeurs par défaut.
wBlock ralentit-il Safari ?
Non en usage normal. wBlock utilise l'API native de blocage de contenu déclaratif de Safari, qui applique les règles compilées hors du processus de l'application. L'utilisation au repos se situe autour de ~40 Mo, et le chargement des pages reste sur le chemin natif du bloqueur de Safari.
Les userscripts fonctionnent-ils sur iOS et iPadOS ?
Oui. Le moteur userscript implémente les API Greasemonkey courantes (GM_getValue, GM_setValue, GM_xmlhttpRequest, GM_addStyle) sur iOS, iPadOS et macOS via les extensions web Safari.
Comment bloquer les publicités Twitch ?
wBlock inclut le userscript AdGuard Extra, qui peut aider avec les publicités Twitch en communiquant avec l'API GraphQL de Twitch (gql.twitch.tv) — la même approche générale utilisée par les utilisateurs d'uBlock Origin. Il est fourni désactivé par défaut, activez-le donc pour Twitch :
1. Ouvrez wBlock et allez dans la section Userscripts.
2. Trouvez AdGuard Extra dans la liste intégrée et activez-le.
3. Rechargez les onglets Twitch ouverts.
Il s'agit d'un blocage de publicités au mieux, de style communautaire : Twitch change fréquemment la façon dont les publicités sont servies, il peut donc occasionnellement casser jusqu'à la mise à jour du userscript. Aucune garantie que chaque publicité soit supprimée.
Que sont Tube Cleaner et Player Cleaner ?
Ce sont des userscripts téléchargés à distance optionnels, inspirés de Vinegar et Baking Soda, qui exposent les contrôles natifs de Safari sur l'élément média existant d'un site. Ils sont désactivés par défaut ; activez-les dans la section Userscripts. Leurs versions sont hébergées dans wBlock-userscripts et ne sont pas liées à une version de l'application wBlock.
Tube Cleaner cible les pages YouTube watch, Shorts et Music. Il laisse les iframes /embed et youtube-nocookie au lecteur propre de YouTube afin que ces iframes ne deviennent pas blanches. Sur les pages watch, il laisse YouTube créer et initialiser son propre <video> et flux SABR/MSE, puis applique les contrôles natifs et masque le chrome personnalisé de YouTube avant qu'il ne puisse s'afficher. Les aperçus de vignettes au survol restent avec YouTube afin qu'ils ne puissent pas voler le lecteur watch. La réutilisation du même élément média préserve la mise en mémoire tampon et la lecture adaptative tout en restaurant le Picture-in-Picture et la lecture en arrière-plan. Il reflète les chapitres et sous-titres YouTube dans les menus média natifs de Safari et saute les segments connus via l'API de préfixe de hachage préservant la confidentialité de SponsorBlock. Son panneau SB compact fournit des couleurs de catégories de style SponsorBlock et un comportement Auto skip, Show skip button ou Disabled par catégorie, plus des contrôles de durée minimale, d'avis d'annulation, de vidéo actuelle et d'exclusion de chaîne. Un panneau DA optionnel peut utiliser DeArrow pour remplacer les titres et vignettes soumis sur la page watch et les cartes YouTube visibles, restaurer les originaux au survol, ou exclure la chaîne actuelle. Les résultats sont mis en cache par session ; les vignettes de secours aléatoires, le reformatage des titres, les soumissions et le vote restent des fonctionnalités de l'extension DeArrow complète. Les données API SponsorBlock et DeArrow sont utilisées sous CC BY-NC-SA 4.0. SB et DA se trouvent sur leur propre rangée de barre d'outils sous les contrôles de qualité et audio/vidéo. Sur iPhone et iPad, les contrôles natifs de Safari gèrent la lecture tandis que la barre d'outils compacte apparaît au-dessus ; les choix de qualité mobile ne s'appliquent qu'à la vidéo actuelle afin qu'une plage fixe ne puisse pas bloquer le prochain flux ManagedMediaSource. Tube Cleaner préserve également la restriction de lecture à distance requise par WebKit pour ce flux, tandis que l'audio seul reste une fonctionnalité macOS. Il suit le lecteur actif pendant que YouTube conserve les Shorts hors écran. Les publicités restent la responsabilité des règles de blocage de contenu de wBlock.
Player Cleaner cible les lecteurs personnalisés sur d'autres sites web (video.js, JW Player, Plyr, Flowplayer, MediaElement, Clappr, Media Chrome/Mux, et plus), y compris les lecteurs à racine fantôme tels que <play-av> d'Archive.org. Il active immédiatement les contrôles natifs. Lorsqu'une source directe sûre est disponible dans le DOM léger, il supprime le chrome personnalisé tout en conservant l'élément média d'origine ; les composants fantômes et les pipelines HLS/DASH/MSE opaques restent intacts et continuent d'utiliser la machinerie de flux du site. Il récupère les fichiers annexes de sous-titres et chapitres exposés par la page ou les API de lecteur courantes, remplit les métadonnées Now Playing système manquantes et les actions de touches média, et mémorise la vitesse de lecture, le volume, l'état muet, la langue des sous-titres et la position de reprise par site. Si un site se comporte mal, désactivez Player Cleaner pour ce site depuis la barre d'outils wBlock.
Où les trouver, et sur quoi puis-je les tester ?
Les deux sont fournis désactivés. Ouvrez l'onglet Userscripts : Tube Cleaner et Player Cleaner se trouvent en haut de la section General. Activez-en un, puis rechargez la page que vous souhaitez tester. S'ils ne sont pas dans la liste, vous exécutez une version de wBlock antérieure à ce changement — quittez wBlock et exécutez cette branche depuis Xcode (une installation Homebrew ou release ne peut pas contenir de code de branche).
Tube Cleaner (pages watch YouTube) :
• Big Buck Bunny — long, nombreuses qualités, bon pour le menu qualité
• Sintel • Tears of Steel Vérifiez que les contrôles natifs apparaissent sans flash du chrome YouTube, que les contrôles de qualité et audio seul fonctionnent, que la barre d'outils réapparaît lorsque vous déplacez la souris sur un lecteur déjà survolé, que le Picture-in-Picture fonctionne, et que l'audio continue de jouer dans un autre onglet. Les iframes YouTube intégrées sur d'autres sites doivent conserver le lecteur propre de YouTube. Le panneau DA est désactivé par défaut ; activez-le pour tester les titres DeArrow, vignettes, comportement original-au-survol et exclusions de chaîne. Le comportement des publicités dépend des listes de filtres wBlock activées.
Player Cleaner (lecteurs personnalisés d'autres sites), une démo par bibliothèque prise en charge :
• video.js / Media Chrome — videojs.org • Plyr — plyr.io • JW Player — testeur de flux et démo • Lecteur JW Player à racine fantôme Archive.org — échantillon FedFlix • Clappr — clappr.io et cdn.clappr.io • MediaElement — mediaelementjs.com • hls.js — démo hls.js • dash.js — lecteur de référence DASH Vérifiez que les contrôles natifs apparaissent rapidement, que le Picture-in-Picture et le plein écran fonctionnent, et que la lecture ne redémarre pas lorsque le chrome personnalisé disparaît. Les lecteurs HLS/DASH/blob peuvent conserver leur pipeline de flux tout en utilisant les contrôles natifs. Si un site se comporte mal, désactivez Player Cleaner pour ce site depuis la barre d'outils wBlock.
Pourquoi les bannières de cookies ou les scriptlets ne fonctionnent-ils pas en navigation privée ?
Safari désactive les extensions Web en navigation privée tant que vous n'activez pas Autoriser en navigation privée pour chacune d'elles. Les filtres de notifications de cookies masquent souvent les bannières à l'aide de scriptlets (par exemple heise.de via Sourcepoint), et ceux-ci ne s'exécutent qu'avec wBlock Scripts.
Safari → Réglages → Extensions → activez Autoriser en navigation privée pour wBlock Scripts et les 5 bloqueurs de contenu wBlock, puis rechargez la fenêtre privée.
Si une bannière a déjà disparu dans une fenêtre normale, cela peut simplement être un cookie de consentement stocké. Effacez les cookies de ce site et comparez à nouveau avant de supposer que le filtre est cassé uniquement en navigation privée.
À quelle fréquence les filtres sont-ils mis à jour ?
Les intervalles de mise à jour automatique sont configurables de 1 heure à 7 jours, ou peuvent être déclenchés manuellement. Sur macOS, l'activation de la mise à jour automatique enregistre un agent de lancement groupé qui peut continuer à vérifier pendant que l'application est fermée via un service de mise à jour en arrière-plan. Sur iOS et iPadOS, les vérifications en arrière-plan sont au mieux et peuvent attendre que le système réveille wBlock ou que vous le rouvriez. L'ouverture de Safari ne déclenche pas les mises à jour. Les mises à jour utilisent des requêtes HTTP conditionnelles (en-têtes If-Modified-Since/ETag) lorsque les serveurs les prennent en charge, ce qui réduit les téléchargements inutiles.
Le zappeur d'éléments est-il disponible sur iOS et iPadOS ?
Oui. Ouvrez la fenêtre contextuelle de l'extension wBlock dans Safari et appuyez sur Activer le zappeur d'éléments.
Suppression des paramètres de suivi URL — supprime les paramètres UTM et autres paramètres de suivi, désenveloppe les URL de raccourcisseurs/redirections (activé par défaut via wBlock Scripts)
Configuration
Mises à jour automatiques de toutes les heures à tous les 7 jours, ou manuelles. macOS peut continuer à vérifier via un agent de lancement intégré et un service de mise à jour en arrière-plan ; les vérifications en arrière-plan iOS sont au mieux
Contrôles par site — désactivez le blocage sur des sites spécifiques depuis la barre d'outils Safari
Journal des requêtes bloquées (macOS) — voyez ce qui est bloqué sur chaque page
Paramètres par site — liste blanche des domaines de confiance, activez/désactivez les userscripts par site, et activez ou désactivez les règles de l'element zapper par domaine
Filtres régionaux avec détection automatique basée sur votre locale
Cask Homebrew pour macOS : brew tap 0xcub3/wblock && brew install --cask wblock