Une de mes applications Web a récemment subi une évaluation de la vulnérabilité et l'une des conclusions concerne le script de domaine croisé. Notre application Web utilise addthis_widget.js de AddThis sur signet Facebook/Twitter, etc. Il a été recommandé de copier le contenu du script sur notre propre domaine et de l'inclure à partir de là, ou de réapprouiller le script fonctionnalité au sein de notre propre code.
Est-ce une question vraiment exploitable?
Si le code est servi par un grand réseau de livraison de contenu (CDN), comme le CDN de Google, il est plus que probable que vous soyez piraté par d'autres moyens. Les grandes CDN ont beaucoup d'argent à dépenser pour la sécurité et il est peu probable qu'un CDN soit un point faible de votre propre infrastructure.
Une fois qu'un site frappe un certain niveau de popularité, il doit servir de contenu statique à partir d'un CDN. Considérez le message suivant:
Pourquoi devrais-je utiliser CDN de Google pour JQuery?
Le bien d'un CDN l'emporte sur la possibilité extrêmement improbable de compromettre un serveur bien entretenu qui distribue du contenu statique. Cela étant dit, J'ai trouvé une faille majeure dans un produit Akamai ...
Oui, c'est un problème de sécurité.
Le JavaScript incluait dans le contexte de votre site Web, ce qui signifie qu'il contrôle tout ce que vous auriez contrôlé.
Les fichiers JavaScript externes peuvent vous faire du mal Par entre autres:
Donc, vous devriez n'incluez que des fichiers javascript externes si:
Il y a bien sûr également PSide à inclure JavaScript à partir d'un serveur externe:
Le principal problème avec les scripts inclus dans d'autres sites est qu'ils (ou même une personne qui permettent de pirater leur serveur) pourrait modifier le script pour inclure un code malveillant.
Vous avez pour la fois 2 options qui ont assez gros "Downsides":
Honnêtement, je tiens à inclure le script supplémentaire (de leur serveur), mais vous avez un consultant en sécurité qui travaille pour vous ... Parlez avec lui sur les 3 options et les inconvénients que vous voyez sur chaque option (réimplément, cross-domaine, copie à votre serveur).