web-dev-qa-db-fra.com

Domaine interne externe Inclure le script

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?

5
dorothy

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 ...

5
rook

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:

  • lire des cookies (par exemple pour voler des sessions)
  • lire l'entrée utilisateur (par exemple pour lire les entrées de mot de passe)
  • modifier ce que l'utilisateur voit (par exemple, afficher des annonces, un phishing, une défaigation)
  • exécuter des formulaires en tant qu'utilisateur (par exemple, pour modifier les informations des utilisateurs, envoyer des spams aux autres utilisateurs)
  • effectuez des demandes à d'autres serveurs (par exemple, d'envoyer les informations obtenues au serveur d'attaquants pour effectuer des attaques DOS/Bruteforce sur d'autres serveurs, etc.)

Donc, vous devriez n'incluez que des fichiers javascript externes si:

  • vous faites confiance au domaine/entreprise à partir de laquelle vous incluez de ne pas vous faire du mal
  • vous leur faites confiance pour garder leur serveur sécurisé
  • vous utilisez HTTPS pour l'inclusion pour éviter l'homme dans les attaques moyennes

Il y a bien sûr également PSide à inclure JavaScript à partir d'un serveur externe:

  • la charge sur votre serveur sera réduite
  • l'utilisateur peut déjà avoir ce fichier mis en cache, de sorte que le site Web se charge plus rapidement pour vos utilisateurs.
3
tim

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":

  1. Reimplayer AddChis Script serait assez prudent, alors je ne pense pas que vous vouliez aller de la sorte. De plus, vous devriez maintenir le script.
  2. Et si vous apportez une copie sur votre serveur, vous devez savoir que l'équipe AddThis met à jour ce script et vous devrez vérifier si vous avez une ancienne version à la mettre à jour (que vous devriez le faire manuellement puisque vous ne le faites pas savoir si quelque chose de mauvais a été inséré dans son instant).

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).

1
Jhuliano Moreno