PageSourceSearch

https://sabor.club/plugins/br.com.fabricadigital.plus.base/static/…/js/plugins/lgpd_anonymous.6200ed0d22ec.js

js sabor.club collected 2026-10-04 01:27:31 UTC 2,390 bytes, 53 lines download raw bytes

1// Banner de cookies para visitante anônimo: mostra a política e registra a
2// aceitação no backend. URLs e token vêm dos data-* que LGPDAnonymousPlugin
3// injeta na tag do script (plus_hidra_looper/plugins/lgpd.py).
4(function() {
5  // A tag de configuração é localizada por TAG + id, nunca só por id.
6  //
7  // `media.js` é renderizado no fim do body e `querySelector('#id')` devolve o
8  // PRIMEIRO nó em ordem de documento — o conteúdo editável vem antes. Como o
9  // `safe_clean` (`plus_base/xpublique/utils/html_security.py`) não remove `id`
10  // nem `data-*` do HTML de editor, um `<span id="..." data-...>` gravado em bloco
11  // de conteúdo era lido NO LUGAR desta tag e passava a escolher o `acceptUrl`
12  // abaixo — que recebe o header `X-CSRFToken`, ou seja, vazamento do token para
13  // host arbitrário. O sanitizador REMOVE `<script>`, então exigir a tag fecha o
14  // vetor (#7174 / #7127).
15  var configScript = document.querySelector("script#plus_hidra_looper_lgpd_anonymous_script");
16  if (!configScript) {
17    return;
18  }
19  var params_dataset = configScript.dataset;
20  var viewUrl = params_dataset.disclaimerViewUrl;
21  var acceptUrl = params_dataset.disclaimerUserAcceptUrl;
22  var t = params_dataset.disclaimerT;
23  // O botão "Eu concordo" continua no DOM com o listener de click ativo durante
24  // o fade-out do banner, e a lib chama onStatusChange sem comparar o status
25  // anterior. Sem esta trava, cliques repetidos disparam POSTs concorrentes que
26  // gravam aceitações duplicadas.
27  var accepted = false;
28  window.cookieconsent.initialise({
29    palette: {
30      popup: { background: "rgba(0,0,0,0.80)" },
31      button: { background: "#fad307", text: "#4d4209 !important" }
32    },
33    theme: "classic",
34    content: {
35      message: "Para uma melhor experiência, neste site utilizamos cookies de acordo com a nossa política de privacidade.<br>Ao continuar navegando neste site, você declara estar ciente destas condições e concorda com elas.",
36      dismiss: "Eu concordo",
37      link: "Conheça nossa política de privacidade",
38      href: viewUrl
39    },
40    onStatusChange: function(status, chosenBefore) {
41      if (accepted) {
42        return;
43      }
44      accepted = true;
45      $.post({
46        url: acceptUrl,
47        beforeSend: function(xhr) {
48          xhr.setRequestHeader("X-CSRFToken", t);
49        }
50      });
51    }
52  });
53})();

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.