Accueil / Cybersécurité / loi / La CNIL lance un ultimatum à Facebook

La CNIL lance un ultimatum à Facebook

Le leader mondial des réseaux sociaux tant décrié pour ses pratiques en matière de données à caractère personnel, va-t-il enfin plier face à la CNIL ? Le G29 est à l’assaut de Facebook depuis mars 2015. La France est la première à se prononcer sur le cas du site internet. (Par Maitre Antoine Chéron, avocat spécialisé en propriété intellectuelle et NTIC)

Dans une décision du 26 janvier 2016, la CNIL a mis en demeure Facebook de se conformer à la loi Informatique et Libertés du 6 janvier 1978. Eu égard à « la gravité des manquements constatés et de l’atteinte consécutive aux intérêts et libertés fondamentaux des personnes concernées », la CNIL a choisi d’en faire la publicité.

Elle reproche tout d’abord à Facebook, de suivre la navigation des internautes non-titulaires d’un compte, sur des sites tiers. Pour ce faire, le réseau social dépose un cookie sur le terminal de chaque personne ayant visité une page Facebook publique. L’article 32-II de la loi Informatique et Libertés dispose que la mise en place de cookies sur le terminal d’un utilisateur implique le consentement préalable de ce dernier, ce qui n’est pas le cas en l’espèce.

Il est également fait grief au réseau social de ne pas recueillir le consentement exprès des internautes au moment de la collecte et du traitement des données relatives à leurs opinions politiques ou religieuses, et à leur orientation sexuelle. S’agissant de données sensibles, Facebook aurait dû solliciter de la CNIL une autorisation antérieurement à la réalisation dudit traitement ou de la personne concernée son consentement.

De plus, elle relève que le site internet ne met pas à disposition des utilisateurs un mécanisme qui permettrait à ces derniers de s’opposer à la combinaison des données à caractère personnel à des fins publicitaires. Or, un tel traitement de données est soumis à l’article 7 de la loi Informatique et Libertés qui prévoit qu’à défaut d’obtenir le consentement de la personne concernée, le traitement n’est autorisé que s’il entre dans l’une des situations ci-après énoncées : s’il est effectué dans le respect d’une obligation légale incombant au responsable du traitement ; pour sauvegarder la vie de la personne concernée ; dans le cadre de l’exécution d’une mission de service public ; en vue de l’exécution d’un contrat ou de mesures précontractuelles ; si le responsable du traitement poursuit un intérêt légitime. La Politique d’utilisation des données de Facebook précise que l’utilisation des données à leur disposition permet de présenter des publicités pertinentes. Le traitement qu’elle réalise est donc contraire à l’article précité.

Enfin la CNIL constate que Facebook continue à transférer les données provenant de l’Union européenne vers les Etats-Unis sur la base du Safe Harbor, lequel a été invalidé le 6 octobre 2015 par la Cour de justice de l’Union européenne. Depuis lors, il n’est plus possible aux entreprises de procéder à des transferts de données à caractère personnel sur le fondement dudit accord. Cependant, le 3 février dernier le G29 a déclaré que les entreprises pourraient dans l’attente de l’entrée en vigueur  l’« EU-US Privacy Shield » (ou « bouclier de l’Union européenne et des Etats-Unis pour la protection de la vie privée »), continuer à exporter les données des citoyens européens vers les Etats-Unis sans être inquiétées. Il semblerait donc que Facebook ne sera pas sanctionné sur ce point.

Le réseau social a trois mois pour adopter les mesures propres à pallier ce défaut de conformité à la loi Informatique et Libertés. Passé ce délai, la présidente de la CNIL pourra désigner un rapporteur. Ce dernier peut être amené le cas échéant à proposer à la formation restreinte de la CNIL, le prononcé d’une sanction à l’encontre de Facebook.

Parallèlement, les autres CNIL du G29 (Belgique, Allemagne, Espagne et Pays-Bas) continuent leurs investigations. D’autres mises en demeure et sanctions pourraient bientôt tombées. [En Belgique, par exemple, les cookies FB ne peuvent plus suivre les Belges, ND DataSecurityBreach.fr]

Étiquetté :

Un commentaire

Nos partenaires




Actualités du mois

mars 2026
L M M J V S D
 1
2345678
9101112131415
16171819202122
23242526272829
3031  

Articles en UNE

Actus zataz



Réseaux sociaux


Liste des sujets


<!-- Cyber'Émission ZATAZ — badge volant (déplaçable) + réduire/fermer -->
<div class="zataz-yt-float" id="zatazYtFloat" role="region" aria-label="Cyber'Émission ZATAZ">
  <div class="zataz-yt-float__bar" id="zatazYtBar">
    <span class="zataz-yt-float__title">Cyber'Émission ZATAZ</span>

    <div class="zataz-yt-float__actions">
      <button type="button" class="zataz-yt-float__btn" id="zatazYtMin" aria-label="Réduire">—</button>
      <button type="button" class="zataz-yt-float__btn zataz-yt-float__btn--close" id="zatazYtClose" aria-label="Fermer">×</button>
    </div>
  </div>

  <a class="zataz-yt-badge" href="https://www.youtube.com/@ZATAZCOM" target="_blank" rel="noopener noreferrer"
     aria-label="Regarder Cyber'Émission ZATAZ sur YouTube (nouvel onglet)">
    <span class="zataz-yt-badge__thumb" aria-hidden="true">
      <span class="zataz-yt-badge__play" aria-hidden="true"></span>
    </span>
  </a>
</div>

<style>
  .zataz-yt-float{
    position:fixed;
    right:18px;
    bottom:18px;
    z-index:99999;
    width:320px;
    max-width:calc(100vw - 36px);
    border-radius:14px;
    overflow:hidden;
    background:linear-gradient(135deg,#111827,#0b1220 55%,#111827);
    border:1px solid rgba(255,255,255,.12);
    box-shadow:0 14px 40px rgba(0,0,0,.35);
    transform:translateZ(0);
    user-select:none;
    touch-action:none; /* drag mobile */
  }

  /* Barre de drag + boutons */
  .zataz-yt-float__bar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    padding:10px 10px 10px 12px;
    font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
    color:#fff;
    background:rgba(0,0,0,.18);
    border-bottom:1px solid rgba(255,255,255,.10);
    cursor:grab;
  }
  .zataz-yt-float__bar:active{ cursor:grabbing; }
  .zataz-yt-float__title{
    font-weight:800;
    letter-spacing:.2px;
    font-size:15px;
    line-height:1;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .zataz-yt-float__actions{ display:flex; gap:8px; }
  .zataz-yt-float__btn{
    appearance:none;
    border:1px solid rgba(255,255,255,.18);
    background:rgba(0,0,0,.28);
    color:#fff;
    width:32px;
    height:28px;
    border-radius:10px;
    font-weight:900;
    line-height:1;
    cursor:pointer;
    display:grid;
    place-items:center;
  }
  .zataz-yt-float__btn:hover{ background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.28); }
  .zataz-yt-float__btn--close:hover{ background:rgba(239,68,68,.22); border-color:rgba(239,68,68,.45); }

  /* Contenu (votre vignette) */
  .zataz-yt-badge{
    display:block;
    text-decoration:none;
    color:#fff;
  }
  .zataz-yt-badge__thumb{
    display:block;
    height:180px;
    background:#0f172a url("https://i.ytimg.com/vi/HUo8dnD6Swk/hqdefault.jpg") center/cover no-repeat;
    position:relative;
  }
  .zataz-yt-badge__play{
    position:absolute;
    left:50%;
    top:50%;
    width:54px;
    height:54px;
    margin:-27px 0 0 -27px;
    border-radius:999px;
    background:rgba(0,0,0,.55);
    border:1px solid rgba(255,255,255,.25);
    box-shadow:0 10px 22px rgba(0,0,0,.35);
  }
  .zataz-yt-badge__play:before{
    content:"";
    position:absolute;
    left:22px;
    top:16px;
    width:0;height:0;
    border-top:11px solid transparent;
    border-bottom:11px solid transparent;
    border-left:16px solid #fff;
  }

  .zataz-yt-float:hover{
    box-shadow:0 18px 55px rgba(0,0,0,.45);
    border-color:rgba(255,255,255,.18);
  }
  .zataz-yt-badge:active{ transform:scale(.99); }

  /* Etat réduit */
  .zataz-yt-float.is-min .zataz-yt-badge{ display:none; }
  .zataz-yt-float.is-min{ width:260px; }

  /* Mobile : plus compact */
  @media (max-width:480px){
    .zataz-yt-float{ width:280px; right:12px; bottom:12px; }
    .zataz-yt-badge__thumb{ height:158px; }
    .zataz-yt-float.is-min{ width:220px; }
  }
</style>

<script>
(() => {
  const box = document.getElementById('zatazYtFloat');
  const bar = document.getElementById('zatazYtBar');
  const btnMin = document.getElementById('zatazYtMin');
  const btnClose = document.getElementById('zatazYtClose');

  if (!box || !bar || !btnMin || !btnClose) return;

  // Réduire / restaurer
  btnMin.addEventListener('click', (e) => {
    e.stopPropagation();
    box.classList.toggle('is-min');
    btnMin.textContent = box.classList.contains('is-min') ? '▢' : '—';
    btnMin.setAttribute('aria-label', box.classList.contains('is-min') ? 'Restaurer' : 'Réduire');
  });

  // Fermer
  btnClose.addEventListener('click', (e) => {
    e.stopPropagation();
    box.remove();
  });

  // Drag (souris + tactile) via Pointer Events
  let dragging = false;
  let startX = 0, startY = 0;
  let startLeft = 0, startTop = 0;

  // Position initiale: on convertit right/bottom en left/top pour le drag
  const init = () => {
    const r = box.getBoundingClientRect();
    box.style.left = r.left + 'px';
    box.style.top  = r.top  + 'px';
    box.style.right = 'auto';
    box.style.bottom = 'auto';
  };
  init();

  const clamp = (v, min, max) => Math.min(Math.max(v, min), max);

  bar.addEventListener('pointerdown', (e) => {
    // pas de drag quand on clique sur les boutons
    if (e.target === btnMin || e.target === btnClose) return;

    dragging = true;
    bar.setPointerCapture(e.pointerId);

    const r = box.getBoundingClientRect();
    startX = e.clientX;
    startY = e.clientY;
    startLeft = r.left;
    startTop = r.top;

    e.preventDefault();
  });

  bar.addEventListener('pointermove', (e) => {
    if (!dragging) return;

    const dx = e.clientX - startX;
    const dy = e.clientY - startY;

    const r = box.getBoundingClientRect();
    const w = r.width;
    const h = r.height;

    const maxLeft = window.innerWidth - w - 8;
    const maxTop  = window.innerHeight - h - 8;

    box.style.left = clamp(startLeft + dx, 8, maxLeft) + 'px';
    box.style.top  = clamp(startTop + dy, 8, maxTop) + 'px';
  });

  const endDrag = () => { dragging = false; };
  bar.addEventListener('pointerup', endDrag);
  bar.addEventListener('pointercancel', endDrag);

  // Re-clamp au resize
  window.addEventListener('resize', () => {
    const r = box.getBoundingClientRect();
    const maxLeft = window.innerWidth - r.width - 8;
    const maxTop  = window.innerHeight - r.height - 8;
    box.style.left = clamp(r.left, 8, maxLeft) + 'px';
    box.style.top  = clamp(r.top, 8, maxTop) + 'px';
  });
})();
</script>