web-dev-qa-db-fra.com

Avertissement SameSite Chrome 77

Depuis la dernière mise à jour, je rencontre une erreur avec les cookies, liée à l'attribut SameSite.

Les cookies proviennent de développeurs tiers (Fontawesome, jQuery, Google Analytics, Google reCaptcha, Google Fonts, etc.)

Les erreurs dans la console Chrome console sont comme ceci.

A cookie associated with a cross-site resource at <URL> was set without the `SameSite` attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set with `SameSite=None` and `Secure`. You can review cookies in developer tools under Application>Storage>Cookies and see more details at <URL> and <URL>.
(index):1 A cookie associated with a cross-site resource at http://jquery.com/ was set without the `SameSite` attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set with `SameSite=None` and `Secure`. You can review cookies in developer tools under Application>Storage>Cookies and see more details at https://www.chromestatus.com/feature/5088147346030592 and https://www.chromestatus.com/feature/5633521622188032.
(index):1 A cookie associated with a cross-site resource at http://fontawesome.com/ was set without the `SameSite` attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set with `SameSite=None` and `Secure`. You can review cookies in developer tools under Application>Storage>Cookies and see more details at https://www.chromestatus.com/feature/5088147346030592 and https://www.chromestatus.com/feature/5633521622188032.
(index):1 A cookie associated with a cross-site resource at http://google.com/ was set without the `SameSite` attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set with `SameSite=None` and `Secure`. You can review cookies in developer tools under Application>Storage>Cookies and see more details at https://www.chromestatus.com/feature/5088147346030592 and https://www.chromestatus.com/feature/5633521622188032.
(index):1 A cookie associated with a cross-site resource at https://google.com/ was set without the `SameSite` attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set with `SameSite=None` and `Secure`. You can review cookies in developer tools under Application>Storage>Cookies and see more details at https://www.chromestatus.com/feature/5088147346030592 and https://www.chromestatus.com/feature/5633521622188032.
(index):1 A cookie associated with a cross-site resource at https://www.google.com/ was set without the `SameSite` attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set with `SameSite=None` and `Secure`. You can review cookies in developer tools under Application>Storage>Cookies and see more details at https://www.chromestatus.com/feature/5088147346030592 and https://www.chromestatus.com/feature/5633521622188032.
(index):1 A cookie associated with a cross-site resource at http://www.google.com/ was set without the `SameSite` attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set with `SameSite=None` and `Secure`. You can review cookies in developer tools under Application>Storage>Cookies and see more details at https://www.chromestatus.com/feature/5088147346030592 and https://www.chromestatus.com/feature/5633521622188032.
(index):1 A cookie associated with a cross-site resource at http://gstatic.com/ was set without the `SameSite` attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set with `SameSite=None` and `Secure`. You can review cookies in developer tools under Application>Storage>Cookies and see more details at https://www.chromestatus.com/feature/5088147346030592 and https://www.chromestatus.com/feature/5633521622188032.

Y a-t-il quelque chose que je dois faire sur ma machine ou mon serveur local ou est-ce juste une fonctionnalité qu'ils devraient implémenter dans les futures versions de leurs bibliothèques?

159
peiblox

Cet avertissement de la console n'est pas une erreur ou un problème réel - Chrome ne fait que répandre le mot sur cette nouvelle norme pour augmenter l'adoption par les développeurs.

Cela n'a rien à voir avec votre code. C'est quelque chose que leurs serveurs Web devront prendre en charge.

La date de sortie d'un correctif est le 4 février 2020 par: https://www.chromium.org/updates/same-site

Février 2020: Déploiement de l'application pour Chrome 80 Stable: SameSite par défaut et SameSite = None-requires) -Les comportements sécurisés commenceront à se déployer vers Chrome 80 Stable pour une population limitée initiale à partir de la semaine du 17 février 2020 , à l'exception de la fête du président américain lundi. Nous surveillerons et évaluerons de près l'impact sur l'écosystème à partir de cette phase initiale limitée en augmentant progressivement les déploiements.

Pour le Chrome, voir ici .

J'ai résolu le même problème en ajoutant un en-tête de réponse

response.setHeader("Set-Cookie", "HttpOnly;Secure;SameSite=Strict");

SameSite empêche le navigateur d'envoyer le cookie avec les demandes intersites. L'objectif principal est d'atténuer le risque de fuite d'informations d'origine croisée. Il offre également une certaine protection contre les attaques de contrefaçon de requêtes intersites. Les valeurs possibles pour le drapeau sont Lax ou Strict.

Les cookies de SameSite expliqués ici

Veuillez vous référer à this avant d'appliquer une option.

J'espère que cela vous aidera.

124
Rahul Mahadik

Si vous testez sur localhost et que vous n'avez aucun contrôle sur les en-têtes de réponse, vous pouvez le désactiver avec un indicateur chrome.

Visitez l'url et désactivez-la: chrome: // flags/# same-site-by-default-cookies SameSite by default cookies screenshot

Je dois le désactiver car Chrome Canary vient de commencer à appliquer cette règle à partir de V 82.0.4078.2 environ et maintenant il ne définit pas ces cookies.

Remarque: je n'active ce drapeau que dans Chrome Canary que j'utilise pour le développement. Il est préférable de ne pas activer le drapeau pour tous les jours Chrome navigation pour le même raisons pour lesquelles google l'introduit.

14
Will

Pour élaborer sur la réponse de Rahul Mahadik, cela fonctionne pour MVC5 C # .NET:

AllowSameSiteAttribute.cs

public class AllowSameSiteAttribute : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        var response = filterContext.RequestContext.HttpContext.Response;

        if(response != null)
        {
            response.AddHeader("Set-Cookie", "HttpOnly;Secure;SameSite=Strict");
            //Add more headers...
        }

        base.OnActionExecuting(filterContext);
    }
}

HomeController.cs

    [AllowSameSite] //For the whole controller
    public class UserController : Controller
    {
    }

ou

    public class UserController : Controller
    {
        [AllowSameSite] //For the method
        public ActionResult Index()
        {
            return View();
        }
    }
4
Joel Wiklund

Corrigé en ajoutant crossorigin à la balise de script.

De: https://code.jquery.com/

<script
  src="https://code.jquery.com/jquery-3.4.1.min.js"
  integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo="
  crossorigin="anonymous"></script>

Les attributs d'intégrité et d'origines croisées sont utilisés pour la vérification de l'intégrité des sous-ressources (SRI). Cela permet aux navigateurs de s'assurer que les ressources hébergées sur des serveurs tiers n'ont pas été falsifiées. L'utilisation du SRI est recommandée comme meilleure pratique, chaque fois que les bibliothèques sont chargées à partir d'une source tierce. En savoir plus sur srihash.org

0
John Magnolia

Je pense que cet avertissement est totalement déplacé dans certains cas. En développant une application Cordova et en la testant localement dans le navigateur en ouvrant index.html, chaque fois que l'application demande une image à un domaine d'hôte virtuel local, l'avertissement est déclenché sans raison apparente.

En outre, le sous-domaine de l'avertissement de la console ne correspond pas au sous-domaine de l'image demandée, et il y a pas de cookies créé à partir du domaine signalé par la console. Sans oublier que demander une image à mon serveur n'implique pas de créer/envoyer/lire un cookie.

0
andreszs