[Sécurité] Same-origin policy (SOP)

Le Same origin policy est un mécanisme de sécurité présent dans les navigateurs Web. Ce mécanisme empêche une origine (un site Web) d’interagir avec les données d’une autre origine. Une origine correspond à un protocole, un port et un hôte (par exemple : https://exemple.com:443 ou http://monblog.fr:80). Ainsi les données affichées par un site Web (Webmail, site bancaire…) ne sont pas accessibles à une autre origine. Si un site malveillant parvenait, à l’aide d’un code Javascript, à accéder au contenu d’un site alors il pourrait lire des données sensibles qui y sont affichées. Il en résulterait une exposition des données et les conséquences peuvent être graves. En général un domaine peut émettre une requête vers une autre domaine mais n’aura pas accès à la réponse.

Pour les cookies il faut réduire le risque que le Javascript interagisse avec ces derniers en utilisant le flag HttpOnly.

Ce mécanisme de sécurité s’applique aux scripts. Les autres ressources (CSS, images, Javascript inline) ne sont pas concernées. Pour les fonts certains navigateurs appliquent le Same-origin policy, d’autres non. Pour empêcher le chargement d’un site dans une frame, depuis une autre origine, il faut utiliser l’entête X-Frame-Options.

Les sites Web modernes étant des applications à part entière il est nécessaire qu’ils échangent des données entre eux. Pour sortir de la rigidité imposée par SOP un mécanisme nommé CORS (Cross-origin resource sharing) a été mis en place.

Sources :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *