Autoriser les «objets bloqués» à partir d'un site spécifique

8

Je veux autoriser les "objets bloqués", y compris les polices, pour certains sites avec le plugin NoScript FireFox.

Je comprends pourquoi NoScript bloque les polices , mais pour quelques sites Web de confiance, je veux quand même les autoriser.

J'ai lu comment autoriser le script d'un seul domaine et comment activer certains scripts particuliers en plus du manuel ABE . Mais je ne peux pas le faire fonctionner. Voici quelques règles ABE que j'ai essayées pour Toggl:

Site .gstatic.com .bootstrapcdn.com
Accept from .toggl.com

Site fonts.gstatic.com maxcdn.bootstrapcdn.com
Accept INCLUSION(SCRIPT, OBJ, CSS) from .toggl.com

Site fonts.gstatic.com maxcdn.bootstrapcdn.com
Accept from .toggl.com

Cependant, aucun de ces ensembles de règles ne permet l'inclusion de polices pour Toggl. Voyez-vous où je me trompe?

(NoScript 2.6.9.6rc3 sur FireFox 34.0.5)

Jura
la source

Réponses:

5

le site noscript déclare:

Par exemple, définir la noscript.allowedMimeRegExpvaleur de préférence sur

  • FRAME@https?://somesite\.com
  • FONT@https?://some-other-site\.com
  • WebGL@https://www\.khronos\.org

autorisera en permanence toute charge FRAME / IFRAME depuis somesite.com, les polices Web de some-other-site.com et le contenu WebGL 3D de https://www.khronos.org.

Je ne pense pas que l'ABE puisse le faire. Une façon hacky d'activer la police uniquement pour un site / domaine particulier consiste à utiliser Vimperator / Pentadactyl et à modifier automatiquement le paramètre MimeRegExp lors d'un événement LocationChange. Pour rétablir le paramètre lorsque vous quittez la page, vous pouvez utiliser cette fonction simple (obtenue auprès d' Anekos ) dans .vimperatorrc qui utilise une expression avec un lookahead négatif:

js <<EOM
function add_AutoCommand(URI, onEnter, onLeave) {
    let entered = false;
    autocommands.add('LocationChange', '(?!' + URI + ')', function () {
      if (entered) {
        entered = false;
        onLeave();
      }
    });
    autocommands.add('LocationChange', URI, function () {
        onEnter();
        entered = true;
    });
}
add_AutoCommand(https?://allow-font-on-this-site\.com, 
    :set! noscript.allowedMimeRegExp="FONT@https?://some-other-site\.com", 
    :set! noscript.allowedMimeRegExp=" "
);
EOM

Je n'ai pas testé cela mais je le ferai.

EDIT : il devrait être

add_AutoCommand('https?:\/\/allow-font-on-this-site\\.com.*', 
    function(){options.setPref("noscript.allowedMimeRegExp",
        "FONT@http://fonts.gstatic.com")}, 
    function(){options.setPref("noscript.allowedMimeRegExp", 
        "")}
);

... mais noscript ne reprend pas la préférence à moins que la page ne soit rechargée, donc rechargez manuellement ou utilisez tabs.reload(config.browser.mCurrentTab, false);

Il semble que vous devez définir un booléen et un délai d'expiration pour empêcher LocationChange d'exécuter (et donc de boucler) le rechargement. Peut-être qu'un autre autocmd sur l'événement PageLoadPre pourrait être utilisé pour le booléen. Ça devient assez moche je sais. Désolé.

ps. une application plus utile du simple basculement de préfets basé sur URL est évidemment de changer le répertoire de téléchargement.

EDIT (2017): Avec uBlock Origin, vous pouvez cibler spécifiquement certains types d'objets, fichiers ou comportements html.

Les règles dynamiques et statiques spécifient que les origines sont autorisées pour un domaine / URL. J'utilise cela depuis quelques années maintenant. Les types incluent la police ainsi que le script en ligne , la feuille de style , l' image , l' objet , le script , xmlhttprequest , le sous- cadre , le média , le websocket , le popunder et le popup .

exemples de règles:

* * 3p block
no-remote-fonts: * true
no-remote-fonts: allow-font-on-this-site.com false
allow-font-on-this-site.com font-cdn.org noop

ce qui signifie:

  1. bloquer la demande d'un tiers de n'importe quelle page vers n'importe où
  2. bloquer les polices tierces sur n'importe quelle page de n'importe où
  3. réactiver les polices tierces sur une page du domaine allow-font-on-this-site.com de n'importe où
  4. éventuellement réactiver la demande sur notre page aux origines sur le domaine font-cdn.org

Avec noop (`` aucune opération ''), nous appliquons toujours le filtrage des règles statiques (généralement défini dans les règles distribuées appelées listes de blocage des publicités ou de malvertising).

Bart
la source
1
Merci pour votre réponse complète et le temps que vous y avez consacré.
Jura