2016-02-04 1 views
0

Je crée dynamiquement une iframe dans mon application, le résultat se présente comme suit:Est-il sûr d'avoir sandbox = "allow-scripts allow-popups autoriser-same-origin" sur <iframe />?

<iframe src="blob:http%3A//localhost%3A9292/0194dfed-6255-4029-a767-c60156f3d359" 
     scrolling="no" sandbox="allow-scripts allow-popups allow-same-origin" 
     name="sandbox" style="width: 100%; height: 100%; border: 0px;"></iframe> 

Est-il sûr d'avoir une telle configuration de bac à sable (permettant en particulier le contenu iframe à traiter comme étant de la même origine)?

Répondre

2

allow-same-origin n'est pas sûr. Cela donnera à l'iframe la possibilité d'accéder aux données parentes (aussi le stockage local par exemple)

De plus, allow-same-origin permettra à l'iframe de faire des requêtes ajax à l'API du parent, ce qui peut aussi être dangereux.

Cependant, pour un iframe pour accéder aux données des parents, il faut aussi d'exécuter des scripts, de sorte allow-same-origin sans allow-scripts est inoffensif

Quant au allow-popups, il n'y a pas des choses beaucoup plus dangereux un iframe peut faire, à l'exception du fait qu'il peut ouvrir d'autres URLs

+0

Mais j'ai besoin d'avoir la possibilité d'exécuter des scripts dans iframe. – Kosmetika

+0

Je sais, ce qui le rend dangereux :). Cependant, pourquoi avez-vous besoin de allow-same-origin sur les iframes? Je trouve des petits cas où vous avez réellement besoin de cela –

+3

Je pense que cela peut être mal comprendre ce que permet-même-origine? Il ne traite pas l'iframe comme provenant de la même origine que la page parente. Il traite l'iframe comme provenant du même domaine ** que lui-même ** (au lieu d'agir comme s'il s'agissait d'une page hébergée uniquement, non connectée à autre chose sur votre domaine). Le seul risque que j'ai entendu (et pas vu démontré) est qu'un iframe pourrait changer lui-même pour enlever son propre sandboxing. – Namey