Cookies - Informationen zum Datenschutz

Informationen zum Cookie-Handling in Weblication® Projekten.

Den Umgang mit Cookies in einem Weblication® Projekt finden Sie passend zur aktuellen Rechtsprechung nachfolgend erläutert.

Absoluter Datenschutz in der Standardauslieferung

In Weblication® schützen wir bereits in der Standardeinstellung den Besucher vor der Weitergabe seiner Daten an Dritte ohne Zustimmung. Auch setzt Weblication® keine Cookies mit personenbezogenen Daten oder zum Zweck der Verhaltensanalyse. Notwendige Hilfs-Cookies, die nach der Browsersession sofort gelöscht werden, finden nur dann Anwendung, wenn der Benutzer eine Datenschutzentscheidung trifft. Sie werden also nur gesetzt, um den Datenschutzhinweis nicht bei jedem Aufruf erneut bestätigen zu müssen und um sich zu merken, ob z.B. externe Komponenten geladen werden dürfen. Im Folgenden erfahren Sie, wie Sie auch auf diese Cookies und das obligatorische Session-Cookie verzichten.

Alle Cookies lassen sich ab der Version 13 deaktivieren

Inzwischen gibt es auch die Möglichkeit, das Session-Cookie komplett zu deaktivieren oder nur auf Wunsch zu aktivieren. Dies kann dann gemacht werden, wenn keine speziellen Anwendungen, wie z.B. der Mini-Shop oder auch eigene Formularanwendungen bzw. bei Nutzung eines Upload-Feldes im Formular genutzt werden sollen. Nutzen Sie ohne Cookies auch keine externen Komponenten, wie z.B. Youtube-Videos, Google Maps oder externe Analyse-Tool, können Sie zudem auf den Datenschutzhinweis verzichten.
Aktualisieren Sie Weblics® wie z.B. Akkordeon-Container, Registerlaschen-Container, etc. und Skripte zu externen Trackern bzw. Analyse-Software (Google Analytics, etc.), um diese abhängig von der Datenschutzeinstellung einzubinden oder nicht.
Sollten Sie externe Inhalte z.B. über einen iFrame einbinden, müssen Sie selber im Projekt prüfen und sicherstellen, daß über diese externen Inhalte keine Fremd-Cookies gesetzt werden. Verwenden Sie zum Einbinden externer Inhalte über Iframe daher am besten die aktuellste Version des Weblic® "Iframe, um entfernte Inhalte einzubinden", welches mit den aktuellen BASE Projekten zur Verfügung steht.

Ohne Cookiehinweis brauchen Sie im Standard keine Cookies.

Durch folgende manuelle Konfigurationseinstellung können Sie für die Weblication® CMS Installation global einstellen, daß für Seitenbesucher kein WSESSIONID Cookie gesetzt (ab CMS 13.x).
Setzen Sie hierzu den Wert des onlyForLogin-Attributes innerhalb des cookie-Tags (zu sessions) auf den Wert "1".

Sofern das Tag in der default.wConf.php noch nicht vorhanden sein sollte, setzen Sie dies XML-Konform.
Speichern Sie die Konfigurationsdatei UTF-8 kodiert ab.

<wConf version="13">
  ...
  <sessions>
    <cookie onlyForLogin="1"/>
  </sessions>
  ...
</wConf>

Das Session-Cookie können Sie ab der Version 14 auch nur auf Nachfrage über folgende manuelle Conf-Einstellung aktivieren:

<wConf version="14">
  ...
  <sessions>
    <cookie onlyAfterConfirmed ="1"/>
  </sessions>
  ...
</wConf>

In diesem Fall wird es erst gesetzt, nachdem auch das Cookie allowSessionCookies = 1 gesetzt wurde.

  • Setzen Sie diese Conf-Einstellung nur dann, wenn keine Anwendungen im Projekt verwendet werden, welche die WSESSIONID benötigen (z.B. Mini-Shop)!

  • Beachten Sie, daß die Weblics® Akkordeon-Container und Registerlaschen/Tab-Container eine Merken-Funktion ermöglichen, welche - wenn aktiviert - Cookies setzt. Dies können Sie in den Einstellungen eines Containers deaktivieren.

  • Bei eigenen Anwendungen greift die o.g. Conf-Einstellung nicht, weshalb Sie diese selber hinsichtlich Cookie-Handling entsprechend dem Datenschutz einstellen bzw. in der Datenschutzerklärung hinweisen sollten.

Welche Cookies könnte Weblication ® verwenden

Folgende Cookies könnten von Weblication® gesetzt und genutzt werden - weitere von Entwicklern und Fremdsystemen erzeugte Cookies sind in der Auflistung nicht berücksichtigt. Nach unserer Einschätzung können diese Cookies als notwendig angesehen werden und sind somit nicht zustimmungspflichtig. Allerdings ist die generelle Einschätzung notwendiger Cookies auch bei Experten noch strittig:

  • WSESSIONID -
    Zugriff: Weblication®
    Dauer: Session
    Zweck:
    Für die Speicherung von Artikeln im Warenkorb.
    Um Missbrauch bei Abstimmungen zu vermeiden.
    Falls gefilterte Listenergebnisse gespeichert werden sollen, um nach dem Blättern von der Detailseite wieder auf die richtige Ursprungsseite zu gelangen.
    Für komfortablere Behandlung von Fehleingaben in Formularen.
    Zur Nutzung eines Upload-Feldes im Formular.
    Für weitere individuelle, projektspezifische Umsetzungen.

  • hideCookieNotice -
    Zugriff: Weblication®
    Dauer: Session oder 30 Tage, je nach Entscheidung des Benutzers
    Zweck: Falls der Cookie-Hinweis nicht erneut angezeigt werden soll.

  • allowLoadExternRessources -
    Zugriff: Weblication®
    Dauer: Session oder 30 Tage, je nach Entscheidung des Benutzers
    Zweck: Falls einen Entscheidung getroffen wurde, ob man externe Komponenten laden will oder nicht.

  • allowTracking -
    Zugriff: Weblication®
    Dauer: Session oder 30 Tage, je nach Entscheidung des Benutzers
    Zweck: Falls eine Entscheidung getroffen wurde, ob man externe Anaylse-Tool erlauben will oder nicht.

  • websitezoom -
    Zugriff: Weblication®
    Dauer: Session
    Zweck: Falls die Schriftgröße zur besseren Lesbarkeit vom Benutzer einstellbar sein soll.

  • websitecontrast -
    Zugriff: Weblication®
    Dauer: Session
    Zweck: Falls der Kontrast der Webseite zur besseren Lesbarkeit vom Benutzer einstellbar sein soll.

  • disableGoogleAnalytics -
    Zugriff: Weblication®
    Dauer: 30 Tage
    Zweck: Falls Google Analytics deaktiviert werden soll.

  • registerTab_[TABID] -
    Zugriff: Weblication®
    Dauer: Session
    Zweck: Falls ein geöffnetes Element in einem Tab-Container gemerkt werden soll.

  • accordionTab_[TABID] -
    Zugriff: Weblication®
    Dauer: Session
    Zweck: Falls ein geöffnetes Element in einem Accordeon-Container gemerkt werden soll.

  • wLoadHdFirst -
    Zugriff: Weblication®
    Dauer: Session
    Zweck: Falls aufgrund der Bildschirmauflösung HD-Bilder verwendet werden sollen.
    Hinweis:
    Dieses Cookie wird ggf. noch in älteren Projekten verwendet (über hd.js) und ist in aktuellen Projekten nicht mehr im Einsatz!

Weitere von Entwicklern und Fremdsystemen erzeugte Cookies sind unabhängig von obiger Auflistung zu betrachten.

Aktuelle Versionen der Weblication® Projektgrundlage (BASE Classic und BASE (Mobile First)) sind bereits im Standard mit einem Cookie-Hinweis bzw. einer optionalen Abfrage zur Nutzung externer Komponenten ausgestattet. Schaltbar ist dies über die Projektkonfiguration.

Projektkonfiguration - Datenschutz, Cookiehinweis
Projektkonfiguration - Datenschutz, Cookiehinweis

Auszug aus der Projektkonfiguration (default.wVariables.php) der BASE zum Datenschutz/Cookiehinweis:

  <headline text="Datenschutz, Cookiehinweis"/>
  <variable description="Cookie-, Datenschutzhinweis anzeigen" key="show_cookie_info" type="char.yesno">yes</variable>
  <variable description="Laden von externen Trackern bestätigen lassen" key="confirm_before_track" type="char.yesno">yes</variable>
  <variable description="Laden von sonstigen externen Ressourcen bestätigen lassen" key="confirm_before_loadexternressources" type="char.yesno">yes</variable>
  <variable description="Cookie-, Datenschutzhinweis zum Bestätigen blockiert Seite" key="consentsbanner_position" type="char.select" values="|bottom" texts="Ja|Nein"/>

In BASE-Projekten, welche diese Umsetzung noch nicht beinhalten, kann dies über das Weblic® "Datenschutz Hinweis" nachgerüstet werden.
Beachten Sie bei BASE Classic Projekten, daß zumindest eine BASE 2.x Version als Grundlage bestehen muss. Der Aufruf des Cookie-Templates muss in äteren BASE 2.x Projekten manuell in der includes.global.php und ggf. standard.wDocument.php nachgezogen werden (vergleiche aktuelle BASE Classic Projektgrundlage (z.B. Onlinedemo BASE Classic)). Ebenso ist es erforderlich, den Eintrag in der Projektkonfiguration wie oben angegeben zu setzen und in der design.css ggf. die bisherige CSS-Definitionen für den cookieNotice durch die aktuelle Umsetzung zu ersetzen.
Es besteht keine Gewährleistung beim Nachrüsten dieser Funktion.

Manuelles Nachrüsten eines BASE Classic 2.x Projektes

Nachfolgend finden Sie beispielhaft den Quelltext-Auszug eines BASE Classic Projektes mit alter und neuer Umsetzung, bei dem die cookieNotice-Umsetzung in der includes.global.php hinterlegt war. Je nach Projektumsetzung und -alter kann die Angabe auch direkt als manuelle HTML-Einbindung in der Portal-Seite stattgefunden haben oder ggf. noch gar nicht vorhanden sein.
Die Cookie-Umsetzung ist im Standard innerhalb des bodyPost-Templates der includes.global.php abgelegt, welches über die standard.wDocument.php aufgerufen wird. Wenn es dieses bodyPost-Template in Ihrem Projekt nicht gibt, handelt es sich um eine doch ältere BASE Classic, weshalb Sie den Code am besten direkt in der standard.wDocument.php vor dem schliessenden body-Tag und noch vor dem weblicationPanel-Template Aufruf einbinden.

    <xsl:if test="php:functionString('wVariables::getValue', 'show_cookie_info', $wGlobalProjectPath) = 'yes'">        
      <xsl:if test="php:functionString('wRepository::documentExists', concat($wProjectPath, '/wGlobal/content/privacy/cookie-notice.php'))">
        <div id="cookieNotice">
          <xsl:value-of disable-output-escaping="yes" select="document(concat($wDocumentRoot, $wProjectPath, '/wGlobal/content/privacy/cookie-notice.php'))/wd:document/wd:group/wd:item/wd:fragment[@id = 'code']/text()"/>
          <wsl:buttonEdit id="buttonEditCookieNotice" path="{concat($wProjectPath, '/wGlobal/content/privacy/cookie-notice.php')}" icon="edit" title="Cookie-Hinweis bearbeiten"/>
        </div>
      </xsl:if>
    </xsl:if>
    <xsl:variable name="pathCookieNotice"><xsl:choose>
      <xsl:when test="php:functionString('wVariables::getValue', 'confirm_before_loadexternressources', $wGlobalProjectPath, '') = 'yes'">/wGlobal/content/privacy/cookie-notice-full-opt-in.php</xsl:when>  
      <xsl:when test="php:functionString('wVariables::getValue', 'confirm_before_track', $wGlobalProjectPath, '') = 'yes'">/wGlobal/content/privacy/cookie-notice-tracking.php</xsl:when>  
      <xsl:otherwise>/wGlobal/content/privacy/cookie-notice.php</xsl:otherwise>
    </xsl:choose></xsl:variable>  
    
    <xsl:if test="php:functionString('wRepository::documentExists', concat($wProjectPath, $pathCookieNotice))">
      <xsl:choose>
        <xsl:when test="php:functionString('wVariables::getValue', 'confirm_before_loadexternressources', $wGlobalProjectPath, '') = 'yes' and php:functionString('wVariables::getValue', 'consentsbanner_position', $wGlobalProjectPath, '') = 'bottom'">
          <div id="cookieNotice" class="confirmBeforeTrack">
            <div id="cookieNoticeInner">
              <div>
                <div id="cookieNoticeCloser" onclick="closeCookieNotice()"/>                          
                <xsl:apply-templates select="document(concat($wDocumentRoot, $wProjectPath, $pathCookieNotice))/wd:document/wd:group/wd:item"/>
                <wsl:buttonEdit id="buttonEditCookieNotice" path="{concat($wProjectPath, $pathCookieNotice)}" icon="edit" title="Cookie-Hinweis bearbeiten"/>
              </div>
            </div>
          </div>
        </xsl:when>
        <xsl:when test="php:functionString('wVariables::getValue', 'confirm_before_loadexternressources', $wGlobalProjectPath, '') = 'yes'">
          <div id="cookieNotice" class="confirmBeforeLoadExternRessources">
            <div id="cookieNoticeInner">
              <div>
                <div id="cookieNoticeCloser" onclick="closeCookieNotice()"/>                          
                <xsl:apply-templates select="document(concat($wDocumentRoot, $wProjectPath, $pathCookieNotice))/wd:document/wd:group/wd:item"/>
                <wsl:buttonEdit id="buttonEditCookieNotice" path="{concat($wProjectPath, $pathCookieNotice)}" icon="edit" title="Cookie-Hinweis bearbeiten"/>
              </div>
            </div>
          </div>
        </xsl:when>                
        <xsl:when test="php:functionString('wVariables::getValue', 'confirm_before_track', $wGlobalProjectPath, '') = 'yes'">
          <div id="cookieNotice" class="confirmBeforeTrack">
            <div id="cookieNoticeInner">            
              <div>
                <xsl:apply-templates select="document(concat($wDocumentRoot, $wProjectPath, $pathCookieNotice))/wd:document/wd:group/wd:item"/>
                <wsl:buttonEdit id="buttonEditCookieNotice" path="{concat($wProjectPath, $pathCookieNotice)}" icon="edit" title="Cookie-Hinweis bearbeiten"/>
              </div>
            </div>
          </div>
        </xsl:when>  
        <xsl:otherwise>
          <div id="cookieNotice" class="infoOnly">
            <div id="cookieNoticeInner">            
              <div>
                <xsl:apply-templates select="document(concat($wDocumentRoot, $wProjectPath, $pathCookieNotice))/wd:document/wd:group/wd:item"/>
                <wsl:buttonEdit id="buttonEditCookieNotice" path="{concat($wProjectPath, $pathCookieNotice)}" icon="edit" title="Cookie-Hinweis bearbeiten"/>
              </div>
            </div>
          </div>
        </xsl:otherwise>         
      </xsl:choose>  
    </xsl:if>

Die CSS-Definition innerhalb der design.css finden Sie nachfolgend zu einer BASE Classic 2.x angeführt.
Beachten Sie, daß es Projekt individuell auch anders definiert sein konnte und dies nur ein Beispiel aus dem Standard ist!

/* Cookie Hinweis */

#cookieNotice                         {display:none;position:fixed;overflow:hidden;z-index:1000;bottom:-80px;left:0;width:100%;background-color:#d0d0d0;border-top:solid 1px #a0a0a0;padding:10px;text-align:center;}
.pagestatus-loaded #cookieNotice      {display:block;bottom:0;}
#cookieNotice #cookieNoticeCloser     {margin-left:8px;}
#cookieNotice #buttonEditCookieNotice {position:absolute;top:4px;right:48px;}
/* Cookie Hinweis */
.bodyBlank #cookieNotice {
  display: none !important;
}

#cookieNotice.infoOnly, #cookieNotice.confirmBeforeTrack {
  display: none;
  position: fixed;
  overflow: hidden;
  z-index: 111;
  bottom: -80px;
  left: 0;
  width: 100%;
  background-color: #F0F0F0;
  border-top: solid 1px #DDDDDD;
  padding: 10px;
  text-align: center;
}
.pagestatus-loaded #cookieNotice.infoOnly, .pagestatus-loaded #cookieNotice.confirmBeforeTrack {
  display: block;
  bottom: 0;
}
#cookieNotice.infoOnly #cookieNoticeCloser, #cookieNotice.confirmBeforeTrack #cookieNoticeCloser {
  margin-left: 8px;
}
#cookieNotice.infoOnly #buttonEditCookieNotice, #cookieNotice.confirmBeforeTrack #buttonEditCookieNotice {
  position: absolute;
  top: 4px;
  right: 4px;
}

#cookieNotice.confirmBeforeLoadExternRessources {
  display: none;
  position: fixed;
  z-index: 120;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background: rgba(0, 0, 0, 0.3);
}
.pagestatus-loaded #cookieNotice.confirmBeforeLoadExternRessources {
  display: block;
  bottom: 0;
}
#cookieNotice.confirmBeforeLoadExternRessources #cookieNoticeInner {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100vw;
  height: 100vh;
}
#cookieNotice.confirmBeforeLoadExternRessources #cookieNoticeInner > div {
  position: relative;
  left: 0;
  top: 0;
  width: 100vw;
  height: 100vh;
  -webkit-overflow-scrolling: touch;
  overflow-y: auto;
  background-color: #F0F0F0;
  border-top: solid 1px #DDDDDD;
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.6);
  padding: 2rem;
  text-align: center;
}
@media only screen and (min-width: 768px) {
  #cookieNotice.confirmBeforeLoadExternRessources #cookieNoticeInner > div {
    width: 50vw;
    height: auto;
  }
}
#cookieNotice.confirmBeforeLoadExternRessources #cookieNoticeInner button {
  margin-bottom: 0.3rem;
}
#cookieNotice.confirmBeforeLoadExternRessources #cookieNoticeCloser {
  margin-left: 8px;
}
#cookieNotice.confirmBeforeLoadExternRessources #buttonEditCookieNotice {
  position: absolute;
  top: 32px;
  right: 4px;
}
#cookieNotice.confirmBeforeLoadExternRessources #containerRememberDataSecurityPreferences input, #cookieNotice.confirmBeforeLoadExternRessources #containerRememberDataSecurityPreferences label {
  vertical-align: middle;
  line-height: 20px;
}
#cookieNotice.confirmBeforeLoadExternRessources #containerRememberDataSecurityPreferences label {
  font-size: 0.9rem;
  color: rgba(0, 0, 0, 0.5);
  padding-left: 4px;
}

#cookieNoticeCloser {
  cursor: pointer;
  display: block;
  box-sizing: border-box;
  position: absolute;
  z-index: 3;
  right: 0;
  top: 0;
  width: 32px;
  height: 32px;
  font-size: 0;
  color: transparent;
  background-color: transparent;
  transition: transform 0.3 ease-in-out;
}
#cookieNoticeCloser:hover {
  transition: all 0.3s linear;
}
#cookieNoticeCloser:before {
  content: "";
  position: absolute;
  left: 0;
  width: 26px;
  height: 11px;
  margin: 6px 0 0 3px;
  border-top: solid 2px #000000;
  transform: rotate(45deg);
  transform-origin: 2px 5px;
}
#cookieNoticeCloser:after {
  content: "";
  position: absolute;
  left: 0;
  width: 26px;
  height: 18px;
  margin: 6px 0 0 4px;
  border-bottom: solid 2px #000000;
  transform: rotate(-45deg);
  transform-origin: 2px 16px;
}

#embed_cookieNotice {
  display: none;
}

Die Definition innerhalb der Projektkonfiguration finden Sie weiter oben beschrieben.

Für das Einbinden externer Komponenten (z.B. Tracking-Codes wie Google Analytics o.ä. und auch Karten-Anwendungen wie Google Maps und OpenStreetMap, etc.) müssen Sie die jeweilige Anwendung auf aktuellsten Weblic® 2.x Stand bringen bzw. dort manuell die Abfrage nachrüsten.

Um von beliebiger Stelle aus die Datenschutzeinstellungen erneut aufrufen zu können, binden Sie einen Link mit folgendem Ziel ein:
     javascript:openCookieNotice();void(0)
Sie finden dies in der aktuellen BASE über die design.js als Funktion mitgeliefert und z.B. in der Datenschutz-Seite und Meta-Navigation beispielhaft umgesetzt.

Prüfen Sie abschliessend das gesamte Projekt auf korrekte datenschutzrechtliche Umsetzung!

Diese Webseite verwendet Cookies. Durch die Nutzung der Webseite stimmen Sie der Verwendung von Cookies zu. Datenschutzinformationen