Aujourd'hui, j'ai remarqué que je suis incapable d'exécuter des marques de banquets sur https://github.com/ en raison des restrictions de la stratégie de sécurité de contenu (CSP). Y a-t-il un moyen de désactiver le CSP dans Firefox pour simplement des mardikiènes, et pas tout le reste?
J'ai remarqué le security.csp.enable
option dans about:config
, mais cela désactiverait complètement le CSP. Le message suivant est connecté à la console lors de l'activation d'un bookmarklet:
Timestamp: 04/22/2013 02:39:05 PM
Warning: CSP WARN: Directive inline script base restriction violated
Source File: https://github.com/
Line: 0
Source Code:
javascript:...
Vous pouvez essayer de convertir votre marque-bibliothèque à Greasemonkey Userscripts. Ils fonctionnent dans un environnement privilégié et ne sont pas soumis au CSP.
Cependant, d'introduits d'utilisateurs et de bookmarklets sont différents: les utilisateurs sont automatiquement exécutés lors de la recherche de marketlets à la demande. Vous pouvez contourner cet ex. en créant un <button>
Dans le Systect, Ajoutez-le à la page et définissez un écouteur d'événement onclick
sur ce bouton pour déclencher le code du bookmaket.
Le code devrait aller comme ceci:
// ==UserScript==
// @name Name
// @description Description
// @version 0.1
// @namespace example.Lekensteyn
// @grant none
// @include http*://github.com/*/*/commit/*
// ==/UserScript==
var myBookmarklet = function () {
// here goes the code of the bookmarklet
};
var newButton = document.createElement('button');
newButton.innerHTML = 'Execute my bookmarklet';
newButton.addEventListener('click', function(evt) {
myBookmarklet();
});
document.getElementById('someElement').appendChild(newButton);
Pris presque littéralement à partir de mon utilisateur qui est également ciblant Github. Vous pouvez déboguer des courtiseries dans Firebug en utilisant debugger;
mot-clé dans le script.
Notez cependant que Firebug elle-même est pour l'instant également soumis à csp, de sorte que vous ne pouvez pas par exemple. Exécutez le code dans la console (mais vous pouvez inspecter vos utilisateurs dans le mode "lecture seule"). Ceci est pris en charge dans ce bogue .
GitHub dit qu'il devrait fonctionner selon la spécification, mais aucun navigateur ne le fait correctement:
https://github.com/blog/1477-Content-Security-policy#Booklets
Vous devez ouvrir un bogue pour votre navigateur préféré pour ce numéro ou voter pour cela:
De nombreuses réponses recommandent des scripts utilisateur (comme Tampermonkey ou Greasemonkey), mais je tiens à vous rappeler que certaines pages sont nouées pour une raison de ces extensions. (Bien sûr, vous pouvez remplacer la liste noire, mais les Devs avaient la sécurité à l'esprit et verrouillaient ces pages).
Par exemple, je voulais utiliser un bookmarklet pour aller rapidement à Notea à partir de toute liste Amazon, mais Amazon bloqua des sources de script non sécurisées (mise à jour: elle n'a pas été bloquée, mais je n'avais pas de script, c'est une honte). Les extensions de script utilisateur sont sur la liste noire sur les sites bancaires et achats par défaut pour empêcher les scripts d'utilisateur malveillants d'être installé/utilisés.
(P.S. Ce n'est pas une réponse en soi, mais je pensais qu'il serait utile de garder cela à l'esprit avant d'avoir la main sur un utilisateur pour trouver la page sur la liste noire et hésitant de l'ONU-SLALLISTANT.)
J'ai créé une "solution" de travail pour ce numéro à l'aide d'un utilisateur Greasemonkey (dans Firefox). Vous pouvez maintenant avoir des bookmarklets sur tous les Sites CSP et HTTPS: // Sites, ainsi que votre marque-bibliothèque dans un fichier de bibliothèque agréable et facilement modifiable au lieu d'être schémé individuellement dans un signet.
Voir: https://groups.google.com/d/msg/greasemonkey-utilisateurs/mw61ynw5orc/gl_bnuhtsq0j