web-dev-qa-db-fra.com

Comment désactiver les cookies de manière générique jusqu'à ce que les cookies soient acceptés par l'utilisateur

Existe-t-il un moyen élégant de désactiver les cookies jusqu'à ce que l'utilisateur les accepte?

Problème suivant: J'ai une boutique en ligne qui utilise beaucoup de cookies et pour être conforme au GDPR, nous devons "désactiver" les cookies jusqu'à ce que l'utilisateur les accepte. Je ne veux pas réécrire tout le système de magasin et je recherche donc une solution générique.

Mon aproach est:

  • désélectionne tous les en-têtes set-cookie envoyés par notre serveur (via nginx ou php)

Mais il y a encore des problèmes:

  • comment puis-je empêcher les sites externes de créer des cookies sans les supprimer complètement (bing, google, fb, ..)
  • comment puis-je empêcher javascript de créer des cookies sans modifier toutes les sources javascript (est-il possible de remplacer les fonctions du navigateur de sorte que vous ne puissiez pas configurer de cookies via JS)
3
warch

Si la conformité au GDPR est votre préoccupation, la suppression des cookies ne suffira pas. Vous devez désactiver tout script de suivi recueillant des informations personnelles identifiables (PII).

Je recommande de transférer tous les scripts de suivi vers Google Tag Manger et d'utiliser les méthodes décrites par Simo Ahava. Guide 1 et Guide 2 . Ses méthodes ne fonctionnent pas très bien pour le suivi des balises qui ne sont pas Google, mais avec un déclencheur personnalisé, vous pouvez tout arrêter.

Cela dit, si vous souhaitez simplement supprimer les cookies, vous devriez le faire.

function deleteCookies() {
    var theCookies = document.cookie.split(';');
    for (var i = 0 ; i < theCookies.length; i++) {
        document.cookie = theCookies[i].split('=')[0] + '=; path=/; expires=Thu, 01 Jan 1970 00:00:01 GMT;';
    }
}
5
Josh Bradley

Pour désactiver JS-Cookies, vous pouvez utiliser:

if(!document.__defineGetter__) {
Object.defineProperty(document, 'cookie', {
    get: function(){return ''},
    set: function(){return true},
});
} else {
    document.__defineGetter__("cookie", function() { return '';} );
    document.__defineSetter__("cookie", function() {} );
}
2
warch

Mon approche (pas tout à fait une réponse à votre question, mais peut-être une alternative à votre question) est de dire aux utilisateurs que mon site contient des cookies et qu'ils doivent "s'en occuper" s'ils veulent continuer à utiliser mon site. Bien sûr, cela peut ne pas fonctionner pour votre site. 

Je mets un avis en haut (avec le code de https://cookieconsent.insites.com/ pour commencer), qui apparaîtra sur toutes les pages jusqu'à leur acceptation (consentement explicite de leur part). 

Vous pouvez utiliser un bouton pour supprimer tous les cookies, mais vous ne pourrez pas utiliser mon site avant de les accepter à nouveau. Mais ce protocole me gardera en conformité.

0
Rick Hellewell