Avatar

GDPR, DSGVO (Regulation (EU) 2016/679) (General)

by Auge ⌂, Monday, April 02, 2018, 12:43 (2216 days ago) @ Auge

Hallo

Speicherbegrenzung (Daten müssen „in einer Form gespeichert werden, die die Identifizierung der betroffenen Personen nur so lange ermöglicht, wie es […] erforderlich ist“)


Ist der Account aktiv, sind die zum anlegen des Accounts eingegebenen Daten erforderlich, andere Daten kann der Benutzer selbst löschen. Wird der Account gelöscht, bleibt nur der Benutzername, der nun in den Datensätzen der vom Benutzer stammenden Postings gespeichert wird, übrig.

Normales Verhalten für die Löschung des Accounts Wilfried ist ja, dass der Name "Wilfried" mit dem löschen des Accounts direkt an die Postings übergeben wird, wo bisher nur die ID des Benutzers Wilfried gespeichert war. Der Name, also das Pseudonym des Postenden, ist somit nach wie vor im Forum zu finden. Nun kann es in einem Forum natürlich mehrere Wilfrieds, Franks, Johannas oder Lis geben. Es kann aber auch nur einen Postenden unter dem Namen des zu löschenden Accounts geben, womit dieser Benutzer auch nach dem löschen des Accounts identifizierbar bliebe.

Ich bin mir keineswegs sicher, ob die DSGVO sich auch auf die Autorenschaft (quasi)-öffentlicher Äußerungen bezieht, aber es wäre grundsätzlich eine Möglichkeit, es einem scheidenden Benutzer zu ermöglichen, im Löschprozess die Angabe des Benutzernamens, die ja mit dem löschen des Accounts an die Postings gebunden wird, zu anonymisieren. Aus einigen Boardsystemen sollten die Postings von z.B. "anonym" durchaus bekannt sein.

… IP-Adresse, … Es gibt den Einstellungsschlüssel delete_ips, der bestimmt, wie alt gespeicherte IPs werden dürfen (Löschung erfolgt dann mit den anderen täglichen Aufgaben). Ob sich die Löschung auch auf die IP bei der Registrierung bezieht, wäre zu ermitteln.

Grundsätzlich wird auch die IP-Adresse von registrierten Benutzern gelöscht. Die aktuell benutzte IP wird bei einem erneuten Login neu gespeichert und nach X Tagen gelöscht. Allerdings wird die IP von Benutzern, die vom Admin angelegt wurden (wobei dessen IP bei dem neu angelegten Account gespeichert wird) sich aber noch nie eingeloggt haben, nicht gelöscht.

Anforderung an eine Einwilligung


Werden wir einen gespeicherten Wert für die erfolgte Einwilligung zur Speicherung der Daten brauchen?

Als Laie in Sachen Juristerei würde ich sagen, dass ein Benutzer durch die Eingabe der Daten eine implizite Einwilligung erteilt hat. Aber selbst wenn das stimmt, riechen mir die Berichte über die DSGVO nach der Notwendigkiet einer expliziten Einwilligung (OptIn). Das wäre das Argument für eine Checkbox und eine Spalte in der Tabelle für Nutzerdaten und evtl. auch in der für die Postings.

Recht auf Datenübertragbarkeit


Ich schlage vor, eine Struktur im JSON-Format für den Export und Import von Benutzerdaten zu definieren. Mit der kann ein Benutzer seine Daten von einer zu einer anderen Instanz mitnehmen [3] oder sie für den Gebrauch in einer anderen Software restrukturieren.

Ich liste hier mal ein CREATE-Statement für die Benutzertabelle mit allen Spalten aber ohne Indizes und Schlüssel auf.

CREATE TABLE `mlf2_userdata` (
  `user_id` INT(11) NOT NULL,
  `user_type` tinyint(4) NOT NULL DEFAULT '0',
  `user_name` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
  `user_real_name` VARCHAR(255) NOT NULL DEFAULT '',
  `gender` tinyint(4) NOT NULL DEFAULT '0',
  `birthday` DATE DEFAULT NULL,
  `user_pw` VARCHAR(255) NOT NULL DEFAULT '',
  `user_email` VARCHAR(255) NOT NULL DEFAULT '',
  `email_contact` tinyint(4) DEFAULT '0',
  `user_hp` VARCHAR(255) NOT NULL DEFAULT '',
  `user_location` VARCHAR(255) NOT NULL DEFAULT '',
  `signature` VARCHAR(255) NOT NULL DEFAULT '',
  `profile` text NOT NULL,
  `logins` INT(11) NOT NULL DEFAULT '0',
  `last_login` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP,
  `last_logout` TIMESTAMP NULL DEFAULT NULL,
  `user_ip` VARCHAR(128) NOT NULL DEFAULT '',
  `registered` TIMESTAMP NULL DEFAULT NULL,
  `category_selection` VARCHAR(255) DEFAULT NULL,
  `thread_order` tinyint(4) NOT NULL DEFAULT '0',
  `user_view` tinyint(4) NOT NULL DEFAULT '0',
  `sidebar` tinyint(4) NOT NULL DEFAULT '1',
  `fold_threads` tinyint(4) NOT NULL DEFAULT '0',
  `thread_display` tinyint(4) NOT NULL DEFAULT '0',
  `new_posting_notification` tinyint(4) DEFAULT '0',
  `new_user_notification` tinyint(4) DEFAULT '0',
  `user_lock` tinyint(4) DEFAULT '0',
  `auto_login_code` VARCHAR(50) NOT NULL DEFAULT '',
  `pwf_code` VARCHAR(50) NOT NULL,
  `activate_code` VARCHAR(50) NOT NULL DEFAULT '',
  `language` VARCHAR(255) NOT NULL DEFAULT '',
  `time_zone` VARCHAR(255) NOT NULL DEFAULT '',
  `time_difference` SMALLINT(4) DEFAULT '0',
  `theme` VARCHAR(255) NOT NULL DEFAULT ''
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Wenn man mal alle Felder, die bei einem Umzug nicht sinnvoll zu übernehmen oder eben nicht persönliche Daten wären, weglässt, bliebe foldende Felder für einen Export der persönlichen Daten.

SELECT
  `user_real_name`,
  `gender`,
  `birthday`,
  `user_email`,
  `user_hp`,
  `user_location`,
  `signature`,
  `profile`,
  `language`,
  `time_zone`,
  `time_difference`
FROM `mlf2_userdata`
   WHERE `user_id` = ?

Tschö, Auge

--
Trenne niemals Müll, denn er hat nur eine Silbe!

Tags:
2016/679


Complete thread:

 RSS Feed of thread