8 votes

Autoriser le "blocage des objets" d'un site spécifique

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 de confiance, je veux quand même les autoriser.

Je lis comment autoriser script à partir d'un seul domaine y Comment activer certains scripts particuliers ? en plus du Manuel de l'EBA . Mais je n'arrive pas à le faire fonctionner. Voici quelques règles ABE que j'ai essayé 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 permettra l'inclusion de polices pour Toggl. Vous voyez où je fais fausse route ?

(NoScript 2.6.9.6rc3 sur FireFox 34.0.5)

5voto

Bart Points 186

Le site site noscript États :

Par exemple, la définition de la noscript.allowedMimeRegExp valeur de préférence à

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

permettra de façon permanente tout chargement FRAME/IFRAME à partir de somesite.com, les polices web à partir de un autre site.com et le contenu WebGL 3D provenant de https://www.khronos.org .

Je ne pense pas que l'EBA puisse le faire. Une façon astucieuse d'activer la police uniquement pour un site/domaine particulier est d'utiliser Vimperator/Pentadactyl et de modifier le paramètre MimeRegExp automatiquement lors d'un événement LocationChange. Pour rétablir le paramètre en quittant la page, vous pouvez utiliser cette fonction simple (obtenue auprès de 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 ne l'ai pas encore testé 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 détecte pas la préférence à moins que la page ne soit rechargée, donc il faut soit recharger manuellement soit utiliser tabs.reload(config.browser.mCurrentTab, false);

Il semble que vous deviez définir un booléen et un délai d'attente pour empêcher LocationChange d'exécuter (donc, de boucler) le rechargement à nouveau. Peut-être qu'un autre autocmd sur l'événement PageLoadPre pourrait être utilisé pour le booléen. Je sais que cela devient assez laid. Désolé.

ps. une application plus utile du simple changement de préfixe basé sur l'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, de fichiers ou de comportements html.

Les règles dynamiques et statiques spécifient les origines autorisées pour un domaine/une URL. Je l'utilise depuis quelques années maintenant. Les types incluent police ainsi que inline-script , feuille de style , image , objet , script , xmlhttprequest , sous_châssis , médias , websocket , popunder y popup .

exemple 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 les demandes de tiers de n'importe quelle page vers n'importe quel endroit
  2. blo bloquer les polices de tiers sur n'importe quelle page de n'importe quel endroit
  3. réactiver les polices de tiers sur une page du domaine Autoriser les polices de caractères sur ce site de n'importe où
  4. facultativement, 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éfinies dans des règles distribuées connues sous le nom de listes de blocage des publicités ou de publicité malveillante).

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X