Bonjour
Comment empecher exécution des widget javascript depuis la barre d'outils navigateur pour mon site s'il vous plait ?
du genreMerciCode:javascript:void((function(){..........})())
Version imprimable
Bonjour
Comment empecher exécution des widget javascript depuis la barre d'outils navigateur pour mon site s'il vous plait ?
du genreMerciCode:javascript:void((function(){..........})())
Ce genre de code s’appelle un bookmarklet. C’est une méthode des années 90-2000, normalement les navigateurs actuels la bloquent pour protéger les gens contre les piratages de type ingénierie sociale (du genre « copie ce code et tu pourras hacker le compte Facebook de tes amis ! »).
Pour faire une réponse courte : tu n’as rien à faire ;)
Cependant, il faut que tu saches qu’il n’y a aucun moyen sûr d’empêcher une personne d’exécuter du code JS arbitraire sur ton site. Il suffit d’ouvrir la console en appuyant sur F12. Dans les cas les plus complexes, un attaquant aura recours à une extension de navigateur, voire même un navigateur modifié, pour arriver à ses fins.
En réalité, tu n’as aucun contrôle sur ce qui se passe côté client. Si tu as des données à protéger, cette protection doit se faire côté serveur. Si ton souci est de garantir la propriété intellectuelle d’une œuvre (image, audio, video), le plus simple est de publier une version en qualité limitée.
Salut,
Je n'ai pas compris on peut coté client exécuter du code JS arbitraire sur un site ? Ou bien tu veux dire sur la page du site chargée dans le navigateur ?
J'ai vu que certains sites bloquaient le copier/coller mais comme dit Watilin on peut toujours accéder au contenu de la page via la console...
Sinon pour infos j'utilise parfois ce genre de code pour changer les couleurs de la page et j'ai remarqué que cela ne fonctionnait pas sur certains sites (github par exemple) mais c'est avec FF pas chrome...
Github sert ses pages avec un en-tête Content Security Policy (CSP) et déclare default-src 'none'. Cela interdit, entre autres, les <script> inline (qui ne sont pas dans un fichier séparé) et les « liens » en javascript:. Voir l’option 'unsafe-inline' sur la page de doc de default-src.
Ça peut être effectivement une piste à explorer. Mais la puissance de CSP n’est pas sans contraintes : elle fonctionne comme une liste blanche, par défaut tout est bloqué, et il faut préciser explicitement tout ce qu’on veut autoriser. On peut trouver ça fastidieux, il n’y a qu’à voir la taille des en-têtes CSP de Github pour se faire une idée.
Ah ben tout s'explique, merci Watilin !