Erreur Iframe dans Chrome: Impossible de lire 'localStorage' à partir de 'Fenêtre': Accès refusé pour ce document
J'ai une application web qui utilise le localStorage. Maintenant, nous voulons intégrer cette application sur d'autres (tiers) des sites via iframe. Nous voulons offrir un iframe intégrer similaire à youtube, de sorte que d'autres sites peuvent intégrer notre application web dans une iframe. Fonctionnellement c'est le même que si il ne serait pas intégré. Mais il ne fonctionne pas. Chrome affiche le message d'erreur:
Uncaught SecurityError: Failed to read the 'localStorage' property from 'Window': Access is denied for this document.
Je viens de faire la vérification suivante (dans l'iframe):
if (typeof window.localStorage !== 'undefined') {
//SETUP SESSION, AUHT, LOCALE, SETTINGS ETC
} else {
//PROVIDE FEEDBACK TO THE USER
}
J'ai vérifié mes paramètres de sécurité dans Chrome comme décrit dans un autre Stackoverflow Fil mais ça ne fonctionne pas. Est-il un changement pour faciliter l'incorporation possible sans la nécessité de l'ajustement (par défaut) les paramètres de sécurité de la plupart des navigateurs modernes?
De donner plus d'informations, nous utilisons de Braise-CLI pour notre web app et allumé CSP (plus d'infos sur la Braise-CLI CSP). Pourrait CSP cause de notre application web pour lancer des erreurs de sécurité?
source d'informationauteur tschoartschi | 2015-05-27
Vous devez vous connecter pour publier un commentaire.
Sous Paramètres de google Chrome > vie privée > paramètres de Contenu, vous avez le cookie est défini sur "Bloquer les sites de stocker des données"
Cette case à cocher est ce qui est à l'origine de l'exception.
Selon cette
Un moyen plus sûr de faire cela en Chrome serait pour autoriser uniquement le ou les site(s) en qui vous avez confiance:
Comme cela a été souligné dans les commentaires, localstorage est d'origine unique uniquement, à l'origine de la page. Tentative d'accéder à la page du localstorage à partir d'une iframe chargé à partir d'une origine différente, une erreur sera générée.
Le meilleur que vous pouvez faire est de le pirater avec XDM via le postMessage API. Cette bibliothèque vise à faire le gros du travail pour vous, mais je n'ai pas essayé. Cependant, je voudrais assurez-vous que vous êtes conscient de IE est terrible de soutien pour XDM avant de descendre cette route.
Pour se débarrasser de cet avertissement - sous Paramètres de google Chrome -> vie privée -> paramètres de Contenu, vous devez effacer le "Bloquer les cookies tiers et les données de site" option
localStorage
est par domaine, par protocole. Si vous essayez d'accéder àlocalStorage
à partir d'un fichier autonome, c'est à dire avecfile:///
protocole, il n'y a pas de domaine en soi. D'où les navigateurs actuellement serait plaindre que votre document n'a pas accès àlocalStorage
. Si vous mettez votre fichier à un serveur web (par exemple, de déployer dans Tomcat) et y accéder à partir delocalhost
vous serez en mesure d'accéder àlocalStorage
.à mon humble avis il n'a rien à voir avec le CSP paramètres de votre braise de la cli de l'app, mais de le faire avec les paramètres du navigateur.
Certains navigateurs (Chrome) bloc localStorage contenu chargé dans un iframe.
Nous aussi, nous sommes confrontés à une situation similaire pour nos Braise Application,nous avons une braise application et un plugin qui se charge de la 3e partie de sites web, le jeton de l'utilisateur chargé dans l'iframe est bloquée dans Chrom,on expérimente des solutions, va garder ce fil affichés sur la façon dont il va.
Sur l'URL suivante:
chrome://settings/content/cookies
décocher la case "Bloquer les cookies tiers".