web-dev-qa-db-fra.com

Stockage local persistant dans les problèmes iOS Safari

Je travaille actuellement sur une application Web hébergée sur d'autres sites Web à l'intérieur d'une iframe à des fins de sécurité (protection des données des utilisateurs). Pour conserver l’état de la session pour les données non sécurisées, nous écrivons certaines données sur le stockage local afin que les fonctionnalités de l’utilisateur soient mémorisées, c’est-à-dire que nous mémorisons la couleur de fond de l’utilisateur, en enregistrant "backgroundColour" en "rouge".

Cependant, j'ai rencontré les deux problèmes suivants sur iOS Safari qui fonctionnent actuellement sur MacOS Safari et Chrome et Internet Explorer 11. 

Issue 1 : le stockage local n'est pas conservé lorsque je force de quitter iOS

  1. L'utilisateur accède au site Web de l'hôte, www.Host.com, qui charge le contenu de mon iframe à partir d'un autre domaine, www.example.com.
  2. L'utilisateur interagit ensuite avec l'iframe et enregistre les préférences de couleur d'arrière-plan que je sauvegarde sur le stockage local. 
  3. L'utilisateur force ensuite quitter Safari ou navigue, puis force quitte Safari. 
  4. Revenir sur le site Web hôte

Comportement attendu: le localStorage contient la propriété backgroundColour 

Comportement réel: le stockage local est vide 

Issue 2 : l'utilisation du contenu de l'iframe sur différents sites n'utilise pas de stockage local

  1. L'utilisateur accède au site Web de l'hôte, www.Host.com, qui charge le contenu de mon iframe à partir d'un autre domaine, www.example.com.
  2. L'utilisateur interagit ensuite avec l'iframe et enregistre les préférences de couleur d'arrière-plan que je sauvegarde sur le stockage local. 
  3. L'utilisateur accède à www.awesomesite.com qui contient également le contenu de mon iframe du domaine à l'étape 1, www.example.com

Comportement attendu: le stockage local est conservé entre les différents sites car il est stocké contre le DNS de l'iframe. 

Comportement réel: le stockage local est vide 

Quelqu'un at-il déjà vécu cela? Y a-t-il des solutions de contournement que les gens ont trouvées? Est-ce un bug dans iOS Safari? Ai-je fait quelque chose de mal? 

À votre santé

7
Elliot Smith

Issue 1 correspond au comportement de Safari et ne peut pas être modifié en externe avec du code. Veuillez ouvrir une demande de fonctionnalité ou un rapport de bogue avec Apple:

https://www.Apple.com/feedback/safari.html

Issue 2: Malheureusement, la technique que vous utilisez "stockage local tiers" est une technique employée par les technologies de suivi. La récente publication «Push sur la confidentialité» a conduit tous les navigateurs à définir des règles plus strictes pour les cookies tiers, ainsi que pour le stockage local. Vous constaterez que les paramètres de confidentialité rendront votre expérience utilisateur incohérente. Vous ne pouvez pas vous attendre à ce que votre stockage local soit fiable lorsque vous êtes une tierce partie.

VOIR:Existe-t-il une solution permettant de définir un cookie tiers dans Iframe pour le safari?

ET

https://medium.com/@bluepnume/safaris-new-tracking-rules-and-enabling-cross-cross-domain-data-storage-85241eea7483

ET

https://groups.google.com/forum/#!topic/mozilla.dev.platform/vm81cSx4teo

2
HackSlash