Browse code

Neues Modul zum Abschließen eines AV-Vertrags

Bernd Wurst authored on11/05/2018 11:16:25
Showing14 changed files
... ...
@@ -5,6 +5,7 @@
5 5
     "require": {
6 6
         "bjeavons/zxcvbn-php": "0.3",
7 7
         "giggsey/libphonenumber-for-php": "^8.8",
8
-        "globalcitizen/php-iban": "^2.6"
8
+        "globalcitizen/php-iban": "^2.6",
9
+        "mpdf/mpdf": "^7.0"
9 10
     }
10 11
 }
... ...
@@ -4,7 +4,7 @@
4 4
         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
5 5
         "This file is @generated automatically"
6 6
     ],
7
-    "content-hash": "8e82fcd9fc27b40fafb297fc10633829",
7
+    "content-hash": "d23e4112dab248fe88e5e21fba2f1972",
8 8
     "packages": [
9 9
         {
10 10
             "name": "bjeavons/zxcvbn-php",
... ...
@@ -195,6 +195,217 @@
195 195
             ],
196 196
             "description": "php-iban is a library for parsing and validating IBAN (and IIBAN) bank account information.",
197 197
             "time": "2017-08-10T17:28:10+00:00"
198
+        },
199
+        {
200
+            "name": "mpdf/mpdf",
201
+            "version": "v7.0.3",
202
+            "source": {
203
+                "type": "git",
204
+                "url": "https://github.com/mpdf/mpdf.git",
205
+                "reference": "5681a0cae1eea197143d5d27f06e19b0523cd8d6"
206
+            },
207
+            "dist": {
208
+                "type": "zip",
209
+                "url": "https://api.github.com/repos/mpdf/mpdf/zipball/5681a0cae1eea197143d5d27f06e19b0523cd8d6",
210
+                "reference": "5681a0cae1eea197143d5d27f06e19b0523cd8d6",
211
+                "shasum": ""
212
+            },
213
+            "require": {
214
+                "ext-gd": "*",
215
+                "ext-mbstring": "*",
216
+                "paragonie/random_compat": "^1.4|^2.0",
217
+                "php": "^5.6 || ~7.0.0 || ~7.1.0 || ~7.2.0",
218
+                "psr/log": "^1.0",
219
+                "setasign/fpdi": "1.6.*"
220
+            },
221
+            "require-dev": {
222
+                "mockery/mockery": "^0.9.5",
223
+                "phpunit/phpunit": "^5.0",
224
+                "squizlabs/php_codesniffer": "^2.7.0",
225
+                "tracy/tracy": "^2.4"
226
+            },
227
+            "suggest": {
228
+                "ext-bcmath": "Needed for generation of some types of barcodes",
229
+                "ext-xml": "Needed mainly for SVG manipulation",
230
+                "ext-zlib": "Needed for compression of embedded resources, such as fonts"
231
+            },
232
+            "type": "library",
233
+            "extra": {
234
+                "branch-alias": {
235
+                    "dev-development": "7.0-dev"
236
+                }
237
+            },
238
+            "autoload": {
239
+                "psr-4": {
240
+                    "Mpdf\\": "src/"
241
+                }
242
+            },
243
+            "notification-url": "https://packagist.org/downloads/",
244
+            "license": [
245
+                "GPL-2.0"
246
+            ],
247
+            "authors": [
248
+                {
249
+                    "name": "Matěj Humpál",
250
+                    "role": "Developer, maintainer"
251
+                },
252
+                {
253
+                    "name": "Ian Back",
254
+                    "role": "Developer (retired)"
255
+                }
256
+            ],
257
+            "description": "A PHP class to generate PDF files from HTML with Unicode/UTF-8 and CJK support",
258
+            "homepage": "https://mpdf.github.io",
259
+            "keywords": [
260
+                "pdf",
261
+                "php",
262
+                "utf-8"
263
+            ],
264
+            "time": "2018-01-03T07:32:36+00:00"
265
+        },
266
+        {
267
+            "name": "paragonie/random_compat",
268
+            "version": "v2.0.12",
269
+            "source": {
270
+                "type": "git",
271
+                "url": "https://github.com/paragonie/random_compat.git",
272
+                "reference": "258c89a6b97de7dfaf5b8c7607d0478e236b04fb"
273
+            },
274
+            "dist": {
275
+                "type": "zip",
276
+                "url": "https://api.github.com/repos/paragonie/random_compat/zipball/258c89a6b97de7dfaf5b8c7607d0478e236b04fb",
277
+                "reference": "258c89a6b97de7dfaf5b8c7607d0478e236b04fb",
278
+                "shasum": ""
279
+            },
280
+            "require": {
281
+                "php": ">=5.2.0"
282
+            },
283
+            "require-dev": {
284
+                "phpunit/phpunit": "4.*|5.*"
285
+            },
286
+            "suggest": {
287
+                "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes."
288
+            },
289
+            "type": "library",
290
+            "autoload": {
291
+                "files": [
292
+                    "lib/random.php"
293
+                ]
294
+            },
295
+            "notification-url": "https://packagist.org/downloads/",
296
+            "license": [
297
+                "MIT"
298
+            ],
299
+            "authors": [
300
+                {
301
+                    "name": "Paragon Initiative Enterprises",
302
+                    "email": "security@paragonie.com",
303
+                    "homepage": "https://paragonie.com"
304
+                }
305
+            ],
306
+            "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7",
307
+            "keywords": [
308
+                "csprng",
309
+                "pseudorandom",
310
+                "random"
311
+            ],
312
+            "time": "2018-04-04T21:24:14+00:00"
313
+        },
314
+        {
315
+            "name": "psr/log",
316
+            "version": "1.0.2",
317
+            "source": {
318
+                "type": "git",
319
+                "url": "https://github.com/php-fig/log.git",
320
+                "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d"
321
+            },
322
+            "dist": {
323
+                "type": "zip",
324
+                "url": "https://api.github.com/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d",
325
+                "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d",
326
+                "shasum": ""
327
+            },
328
+            "require": {
329
+                "php": ">=5.3.0"
330
+            },
331
+            "type": "library",
332
+            "extra": {
333
+                "branch-alias": {
334
+                    "dev-master": "1.0.x-dev"
335
+                }
336
+            },
337
+            "autoload": {
338
+                "psr-4": {
339
+                    "Psr\\Log\\": "Psr/Log/"
340
+                }
341
+            },
342
+            "notification-url": "https://packagist.org/downloads/",
343
+            "license": [
344
+                "MIT"
345
+            ],
346
+            "authors": [
347
+                {
348
+                    "name": "PHP-FIG",
349
+                    "homepage": "http://www.php-fig.org/"
350
+                }
351
+            ],
352
+            "description": "Common interface for logging libraries",
353
+            "homepage": "https://github.com/php-fig/log",
354
+            "keywords": [
355
+                "log",
356
+                "psr",
357
+                "psr-3"
358
+            ],
359
+            "time": "2016-10-10T12:19:37+00:00"
360
+        },
361
+        {
362
+            "name": "setasign/fpdi",
363
+            "version": "1.6.2",
364
+            "source": {
365
+                "type": "git",
366
+                "url": "https://github.com/Setasign/FPDI.git",
367
+                "reference": "a6ad58897a6d97cc2d2cd2adaeda343b25a368ea"
368
+            },
369
+            "dist": {
370
+                "type": "zip",
371
+                "url": "https://api.github.com/repos/Setasign/FPDI/zipball/a6ad58897a6d97cc2d2cd2adaeda343b25a368ea",
372
+                "reference": "a6ad58897a6d97cc2d2cd2adaeda343b25a368ea",
373
+                "shasum": ""
374
+            },
375
+            "suggest": {
376
+                "setasign/fpdf": "FPDI will extend this class but as it is also possible to use \"tecnickcom/tcpdf\" as an alternative there's no fixed dependency configured.",
377
+                "setasign/fpdi-fpdf": "Use this package to automatically evaluate dependencies to FPDF.",
378
+                "setasign/fpdi-tcpdf": "Use this package to automatically evaluate dependencies to TCPDF."
379
+            },
380
+            "type": "library",
381
+            "autoload": {
382
+                "classmap": [
383
+                    "filters/",
384
+                    "fpdi.php",
385
+                    "fpdf_tpl.php",
386
+                    "fpdi_pdf_parser.php",
387
+                    "pdf_context.php"
388
+                ]
389
+            },
390
+            "notification-url": "https://packagist.org/downloads/",
391
+            "license": [
392
+                "MIT"
393
+            ],
394
+            "authors": [
395
+                {
396
+                    "name": "Jan Slabon",
397
+                    "email": "jan.slabon@setasign.com",
398
+                    "homepage": "https://www.setasign.com"
399
+                }
400
+            ],
401
+            "description": "FPDI is a collection of PHP classes facilitating developers to read pages from existing PDF documents and use them as templates in FPDF. Because it is also possible to use FPDI with TCPDF, there are no fixed dependencies defined. Please see suggestions for packages which evaluates the dependencies automatically.",
402
+            "homepage": "https://www.setasign.com/fpdi",
403
+            "keywords": [
404
+                "fpdf",
405
+                "fpdi",
406
+                "pdf"
407
+            ],
408
+            "time": "2017-05-11T14:25:49+00:00"
198 409
         }
199 410
     ],
200 411
     "packages-dev": [],
201 412
new file mode 100644
... ...
@@ -0,0 +1,33 @@
1
+<h1 id="anlage-1">Anlage 1</h1>
2
+<p>zum Vertrag zur Auftragsverarbeitung</p>
3
+<h1 id="maßnahmen-datenschutz-datensicherheit-schokokeks.org-gbr">Maßnahmen Datenschutz / Datensicherheit schokokeks.org GbR</h1>
4
+<p>schokokeks.org betreibt kein eigenes Rechenzentrum, die genutzten Server werden von der Hetzner Online GmbH angemietet und befinden sich in deren Rechenzentren. Die Sicherungsmaßnahmen bei der Hetzner Online GmbH sind in einem Vertrag zur Auftragsverarbeitung zwischen der schokokeks.org GbR und der Hetzner Online GmbH geregelt.</p>
5
+<p>Neben den hier dokumentierten spezifischen Maßnahmen verfolgen wir regelmäßig die Entwicklungen in Sachen IT-Sicherheit und passen unserer Systeme dem Stand der Technik an.</p>
6
+<h2 id="organisatorische-maßnahmen">Organisatorische Maßnahmen</h2>
7
+<p>Zugriff auf personenbezogene Daten haben ausschließlich die Firmeninhaber, im weiteren als Administratoren bezeichnet. schokokeks.org beschäftigt keine weiteren Mitarbeiter, die Zugriff auf personenbezogene Daten haben.</p>
8
+<p>Auf abgestufte Zugriffsrechte innerhalb des Unternehmens wird daher verzichtet.</p>
9
+<h2 id="vertraulichkeitintegrität">Vertraulichkeit/Integrität</h2>
10
+<ul>
11
+<li>Sämtliche Datenverbindungen, mit denen administrative Tätigkeiten zur Datenverarbeitung durchgeführt werden, sind mit Verschlüsselungsverfahren nach dem aktuellen Stand der Technik geschützt (SSH/TLS).<br />
12
+Diese Verschlüsselungsverfahren garantieren die Vertraulichkeit und Integrität der Datenverbindungen.</li>
13
+<li>Den Kunden bereitgestellte Services werden ebenfalls mit Verschlüsselungsverfahren geschützt. Für Web-Services wird HTTPS angeboten. Datenverbindungen vom Kunden zu unseren E-Mail- und XMPP-Services werden ausschließlich über die verschlüsselten Varianten angeboten. Beim Verstand und Empfang von E-Mails und XMPP-Nachrichten (Server-to-Server) wird STARTTLS angeboten.</li>
14
+<li>Alle von schokokeks.org bereitgestellten Webangebote (Konfigurationsinterface, Webmail, Wiki, Webseite etc.) werden ausschließlich über HTTPS angeboten. Durch den Einsatz von HSTS werden außerdem SSL-Stripping-Angriffe verhindert.</li>
15
+<li>Zugriffe auf sämtliche Daten können nur mittels Public-Key- Authentifizierung oder mittels starker Passwörter von den Administratoren durchgeführt werden. Aufgrund des höheren Sicherheitsniveaus wird eine Public-Key-Authentifizeirung in der Regel bevorzugt.</li>
16
+<li>Passwörter werden im System nicht im Klartext gespeichert (gehashte Passwörter).</li>
17
+<li>Passwörter für alle Systemzugänge müssen eine Mindestkomplexität aufweisen.</li>
18
+<li>Bei nicht mehr verwendeten Systemen wird vor einer Kündigung beim jeweiligen Dienstleister eine vollständige Löschung der Festplatten (&quot;shredden&quot;) vorgenommen.</li>
19
+<li>Logdateien werden Datensparsam angelegt. Grundsätzlich werden Logs mit personenbezogenen Daten nur für einen begrenzten Zeitraum gespeichert (maximal 10 Tage). Falls praktikabel wird vollständig auf das Anlegen von Logfiles mit personenbezogenen Daten verzichtet. Die Web-Services von schokokeks.org werden ohne Logfiles betrieben, Zugriffslogs werden nur in Ausnahmefällen zu Debuggingzwecken kurzzeitig aktiviert.</li>
20
+<li>Kunden können mit schokokeks.org mittels Ende-zu-Ende-verschlüsselter Nachrichten (E-Mails nach dem OpenPGP-Standard) kommunizieren. Vertrauliche Nachrichten (z.B. Rechnungen) werden - wenn möglich - stets verschlüsselt auf elektronischem Weg verschickt.</li>
21
+</ul>
22
+<h2 id="verfügbarkeit">Verfügbarkeit</h2>
23
+<ul>
24
+<li>Kundendaten werden in automatisierten Backups gesichert, die einmal täglich durchgeführt werden.</li>
25
+<li>Die Backups werden mit aktuellen, standardisierten kryptographischen Verfahren verschlüsselt.</li>
26
+<li>Ein externes Monitoring überprüft regelmäßig die Verfügbarkeit der bereitgestellten Services. Bei Service-Ausfällen werden die Administratoren unverzüglich mobil alarmiert.</li>
27
+</ul>
28
+<h2 id="belastbarkeit">Belastbarkeit</h2>
29
+<ul>
30
+<li>Softwareupdates und insbesondere Sicherheitsaktualisierungen werden unverzüglich installiert. Dies gilt sowohl für alle verwendeten Betriebssysteme und für separat davon verwaltete Spezial-Software wie beispielsweise Webanwendungen.</li>
31
+<li>Die Systeme werden regelmäßig automatisiert auf die Verfügbarkeit von Updates geprüft.</li>
32
+<li>Verfügbare Härtungsmaßnahmen (z. B. ASLR, Stack-Cookies) werden wenn möglich auf den verwendeten Betriebssystemen eingesetzt. Damit wird eine sofortige Ausnutzung von neu entdeckten Sicherheitslücken in vielen Fällen erschwert oder verhindert.</li>
33
+</ul>
0 34
new file mode 100644
... ...
@@ -0,0 +1,9 @@
1
+<h1 id="anlage-2">Anlage 2</h1>
2
+<p>zum Vertrag zur Auftragsverarbeitung</p>
3
+<h1 id="unterauftragnehmer">Unterauftragnehmer</h1>
4
+<p>schokokeks.org arbeitet momentan mit folgenden Dienstleistern zusammen um die Dienste gemäß Vereinbarung zu erbringen:</p>
5
+<ul>
6
+<li>Hetzner Online GmbH, Industriestr. 25, 91710 Gunzenhausen, Registergericht Ansbach, HRB 6089</li>
7
+<li>http.net Internet GmbH, Franzstr. 51, 52064 Aachen, Amtsgericht Aachen, HRB 19464</li>
8
+</ul>
9
+<p>Ergänzungen zu dieser Liste werden allen Vertragspartnern vorab mitgeteilt.</p>
0 10
new file mode 100644
... ...
@@ -0,0 +1,34 @@
1
+<?php
2
+/*
3
+This file belongs to the Webinterface of schokokeks.org Hosting
4
+
5
+Written 2008-2018 by schokokeks.org Hosting, namely
6
+  Bernd Wurst <bernd@schokokeks.org>
7
+  Hanno Böck <hanno@schokokeks.org>
8
+
9
+To the extent possible under law, the author(s) have dedicated all copyright and related and neighboring rights to this software to the public domain worldwide. This software is distributed without any warranty.
10
+
11
+You should have received a copy of the CC0 Public Domain Dedication along with this software. If not, see 
12
+http://creativecommons.org/publicdomain/zero/1.0/
13
+
14
+Nevertheless, in case you use a significant part of this code, we ask (but not require, see the license) that you keep the authors' names in place and return your changes to the public. We would be especially happy if you tell us what you're going to do with this code.
15
+*/
16
+
17
+require_once('contract.php');
18
+require_role(ROLE_CUSTOMER);
19
+
20
+$pdfdata = get_contract_pdf($_REQUEST['id']);
21
+if (! $pdfdata)
22
+{
23
+	system_failure('Die PDF-Version dieses Vertrags konnte nicht ausgelesen werden. Bitte wenden Sie sich an den Support.');
24
+}
25
+else
26
+{
27
+    $filename = 'av_vertrag.pdf';
28
+	header('Content-type: application/pdf');
29
+	header('Content-disposition: attachment; filename='.$filename);
30
+	echo $pdfdata;
31
+	die();
32
+}
33
+
34
+?>
0 35
new file mode 100644
... ...
@@ -0,0 +1,23 @@
1
+<?php
2
+/*
3
+This file belongs to the Webinterface of schokokeks.org Hosting
4
+
5
+Written 2008-2018 by schokokeks.org Hosting, namely
6
+  Bernd Wurst <bernd@schokokeks.org>
7
+  Hanno Böck <hanno@schokokeks.org>
8
+
9
+To the extent possible under law, the author(s) have dedicated all copyright and related and neighboring rights to this software to the public domain worldwide. This software is distributed without any warranty.
10
+
11
+You should have received a copy of the CC0 Public Domain Dedication along with this software. If not, see 
12
+http://creativecommons.org/publicdomain/zero/1.0/
13
+
14
+Nevertheless, in case you use a significant part of this code, we ask (but not require, see the license) that you keep the authors' names in place and return your changes to the public. We would be especially happy if you tell us what you're going to do with this code.
15
+*/
16
+
17
+require_once('contract.php');
18
+
19
+require_role(array(ROLE_CUSTOMER));
20
+
21
+echo contract_html();
22
+die();
23
+?>
0 24
new file mode 100644
... ...
@@ -0,0 +1,78 @@
1
+<?php
2
+/*
3
+This file belongs to the Webinterface of schokokeks.org Hosting
4
+
5
+Written 2008-2018 by schokokeks.org Hosting, namely
6
+  Bernd Wurst <bernd@schokokeks.org>
7
+  Hanno Böck <hanno@schokokeks.org>
8
+
9
+To the extent possible under law, the author(s) have dedicated all copyright and related and neighboring rights to this software to the public domain worldwide. This software is distributed without any warranty.
10
+
11
+You should have received a copy of the CC0 Public Domain Dedication along with this software. If not, see 
12
+http://creativecommons.org/publicdomain/zero/1.0/
13
+
14
+Nevertheless, in case you use a significant part of this code, we ask (but not require, see the license) that you keep the authors' names in place and return your changes to the public. We would be especially happy if you tell us what you're going to do with this code.
15
+*/
16
+
17
+require_role(ROLE_CUSTOMER);
18
+
19
+
20
+function get_orderprocessing_contract() {
21
+    $args = array(
22
+        "cid" => (int) $_SESSION['customerinfo']['customerno']);
23
+    $result = db_query("SELECT id, signed, type, startdate, enddate FROM kundendaten.contract WHERE customer=:cid AND type='orderprocessing' AND (enddate IS NULL OR enddate < CURDATE())", $args);
24
+    if ($result->rowCount() == 0) {
25
+        return NULL;
26
+    }
27
+    $line = $result->fetch();
28
+    return $line;
29
+}
30
+
31
+
32
+function contract_html() {
33
+    use_module('contacts');
34
+    require_once('contacts.php');
35
+    
36
+    $kundenkontakte = get_kundenkontakte();
37
+    $kunde = get_contact($kundenkontakte['kunde']);
38
+    $adresse = nl2br("\n".filter_input_general($kunde['address'])."\n".filter_input_general($kunde['country']).'-'.filter_input_general($kunde['zip']).' '.filter_input_general($kunde['city']));
39
+    $name = filter_input_general($kunde['name']);
40
+    if ($kunde['company']) {
41
+        $name = filter_input_general($kunde['company'])."<br />".filter_input_general($kunde['name']);
42
+    }
43
+    $email = filter_input_general($kunde['email']);
44
+    $address = "<strong>$name</strong>$adresse</p><p>E-Mail-Adresse: $email";
45
+ 
46
+    $date = date('d.m.Y');
47
+
48
+    $DIR=realpath(dirname(__FILE__).'/..');
49
+
50
+    $vertrag = file_get_contents($DIR.'/vertrag.html');
51
+    $vertrag = str_replace('((ADRESSE))', $address, $vertrag);
52
+    $vertrag = str_replace('((DATUM))', $date, $vertrag);
53
+
54
+    $vertrag = str_replace('</body>', '', $vertrag);
55
+    $vertrag = str_replace('</html>', '', $vertrag);
56
+
57
+    return $vertrag."<br><br><pagebreak>\n".file_get_contents($DIR.'/anlage1.html')."<br><br><pagebreak>\n".file_get_contents($DIR.'/anlage2.html')."</body></html>";
58
+}
59
+
60
+
61
+function save_op_contract($pdfdata) {
62
+    $args = array("cid" => $_SESSION['customerinfo']['customerno'],
63
+            "pdfdata" => $pdfdata);
64
+    db_query("INSERT INTO kundendaten.contract (customer, signed, type, startdate, pdfdata) VALUES (:cid, NOW(), 'orderprocessing', CURDATE(), :pdfdata)",
65
+        $args);
66
+}
67
+
68
+
69
+function get_contract_pdf($id) {
70
+    $args = array("id" => $id,
71
+        "cid" => $_SESSION['customerinfo']['customerno']);
72
+    $result = db_query("SELECT pdfdata FROM kundendaten.contract WHERE id=:id AND customer=:cid", $args);
73
+    $line = $result->fetch();
74
+    return $line['pdfdata'];
75
+}
76
+
77
+
78
+?>
0 79
new file mode 100644
... ...
@@ -0,0 +1,43 @@
1
+<?php
2
+/*
3
+This file belongs to the Webinterface of schokokeks.org Hosting
4
+
5
+Written 2008-2018 by schokokeks.org Hosting, namely
6
+  Bernd Wurst <bernd@schokokeks.org>
7
+  Hanno Böck <hanno@schokokeks.org>
8
+
9
+To the extent possible under law, the author(s) have dedicated all copyright and related and neighboring rights to this software to the public domain worldwide. This software is distributed without any warranty.
10
+
11
+You should have received a copy of the CC0 Public Domain Dedication along with this software. If not, see 
12
+http://creativecommons.org/publicdomain/zero/1.0/
13
+
14
+Nevertheless, in case you use a significant part of this code, we ask (but not require, see the license) that you keep the authors' names in place and return your changes to the public. We would be especially happy if you tell us what you're going to do with this code.
15
+*/
16
+
17
+require_once('contract.php');
18
+require_once('inc/debug.php');
19
+require_once('inc/icons.php');
20
+
21
+require_role(array(ROLE_CUSTOMER));
22
+
23
+title("AV-Vertrag");
24
+
25
+
26
+output('<p>Sofern Sie über Ihre Website oder durch Ihr E-Mail-Postfach Daten von Dritten erheben, verarbeiten oder auf dem von uns bereitgestellten Speicherplatz solche Daten ablegen, müssen Sie möglicherweise einen Vertrag zur Auftragsverarbeitung mit uns abschließen. Ob Sie dazu gemäß der DS-GVO verpflichtet sind, kann im Zweifel eine individuelle Rechtsberatung in Ihrem Unternehmen beantworten.</p>
27
+<p>Der von uns angebotene Vertrag zur Auftragverarbeitung gibt Ihnen hierzu Rechtssicherheit. Da wir schon immer das Prinzip der Datensparsamkeit anwenden und unsere Abläufe darauf und auf höchstmöglicher Sicherheit aufbauen, verändert dieser Vertrag unsere Abläufe nicht wesentlich. Ihre Pflichten aus dem Vertrag begrenzen sich maßgeblich auf die Klärung der Zuständigkeit bzgl. der Rechte der betroffenen Personen.</p>
28
+
29
+');
30
+
31
+$contract = get_orderprocessing_contract();
32
+if ($contract) {
33
+    $sign = date('d.m.Y', strtotime( $contract['signed'] ));
34
+    output('<p>Sie haben am <strong>'.$sign.'</strong> einen Vertrag zur Auftragsverarbeitung mit uns abgeschlossen.</p>
35
+    <p>'.internal_link('download', 'Vertrag als PDF herunterladen', "id={$contract['id']}").'</p>');
36
+    output('<p>Wenn Sie Änderungen oder eine Auflösung dieses Vertrags wünschen, wenden Sie sich bitte an den Support</p>');
37
+} else {
38
+    addnew('new_op', 'Einen Vertrag zur Auftragsverarbeitung abschließen');
39
+}
40
+
41
+
42
+
43
+?>
0 44
new file mode 100644
... ...
@@ -0,0 +1,25 @@
1
+<?php
2
+/*
3
+This file belongs to the Webinterface of schokokeks.org Hosting
4
+
5
+Written 2008-2018 by schokokeks.org Hosting, namely
6
+  Bernd Wurst <bernd@schokokeks.org>
7
+  Hanno Böck <hanno@schokokeks.org>
8
+
9
+To the extent possible under law, the author(s) have dedicated all copyright and related and neighboring rights to this software to the public domain worldwide. This software is distributed without any warranty.
10
+
11
+You should have received a copy of the CC0 Public Domain Dedication along with this software. If not, see 
12
+http://creativecommons.org/publicdomain/zero/1.0/
13
+
14
+Nevertheless, in case you use a significant part of this code, we ask (but not require, see the license) that you keep the authors' names in place and return your changes to the public. We would be especially happy if you tell us what you're going to do with this code.
15
+*/
16
+
17
+$role = $_SESSION['role'];
18
+
19
+
20
+if (($role & ROLE_CUSTOMER))
21
+{
22
+  $menu["contract_list"] = array("label" => "AV-Vertrag", "file" => "list", "weight" => 10, "submenu" => "index_index");
23
+}
24
+
25
+?>
0 26
new file mode 100644
... ...
@@ -0,0 +1,4 @@
1
+name = contract
2
+description = Verträge verwalten
3
+permission = Vertrag verwalten
4
+
0 5
new file mode 100644
... ...
@@ -0,0 +1,36 @@
1
+<?php
2
+/*
3
+This file belongs to the Webinterface of schokokeks.org Hosting
4
+
5
+Written 2008-2018 by schokokeks.org Hosting, namely
6
+  Bernd Wurst <bernd@schokokeks.org>
7
+  Hanno Böck <hanno@schokokeks.org>
8
+
9
+To the extent possible under law, the author(s) have dedicated all copyright and related and neighboring rights to this software to the public domain worldwide. This software is distributed without any warranty.
10
+
11
+You should have received a copy of the CC0 Public Domain Dedication along with this software. If not, see 
12
+http://creativecommons.org/publicdomain/zero/1.0/
13
+
14
+Nevertheless, in case you use a significant part of this code, we ask (but not require, see the license) that you keep the authors' names in place and return your changes to the public. We would be especially happy if you tell us what you're going to do with this code.
15
+*/
16
+
17
+require_once('contract.php');
18
+require_once('inc/debug.php');
19
+require_once('inc/icons.php');
20
+
21
+require_role(array(ROLE_CUSTOMER));
22
+
23
+title("Neuen AV-Vertrag abschließen");
24
+
25
+
26
+output('<p>Bitte kontrollieren Sie den Vertragstext und bestätigen Sie anschließend den Abschluss des Vertrags.</p>
27
+<iframe class="contract_preview" src="html?id=preview&type=orderprocessing"></iframe>');
28
+
29
+$html = '<p><input type="checkbox" name="agree" value="yes" id="agree"> <label for="agree">Ja, ich stimme diesem Vertrag zu und möchte diesen hiermit unterzeichnen</label></p>
30
+<p><input type="submit" value="Unterzeichnen"></p>';
31
+
32
+output(html_form('contract_new_op', 'sign', 'type=op', $html));
33
+
34
+
35
+
36
+?>
0 37
new file mode 100644
... ...
@@ -0,0 +1,35 @@
1
+<?php
2
+/*
3
+This file belongs to the Webinterface of schokokeks.org Hosting
4
+
5
+Written 2008-2018 by schokokeks.org Hosting, namely
6
+  Bernd Wurst <bernd@schokokeks.org>
7
+  Hanno Böck <hanno@schokokeks.org>
8
+
9
+To the extent possible under law, the author(s) have dedicated all copyright and related and neighboring rights to this software to the public domain worldwide. This software is distributed without any warranty.
10
+
11
+You should have received a copy of the CC0 Public Domain Dedication along with this software. If not, see 
12
+http://creativecommons.org/publicdomain/zero/1.0/
13
+
14
+Nevertheless, in case you use a significant part of this code, we ask (but not require, see the license) that you keep the authors' names in place and return your changes to the public. We would be especially happy if you tell us what you're going to do with this code.
15
+*/
16
+
17
+require_once('contract.php');
18
+
19
+require_role(array(ROLE_CUSTOMER));
20
+
21
+if (isset($_REQUEST['agree']) && $_REQUEST['agree'] == 'yes') {
22
+    require_once('vendor/autoload.php');
23
+
24
+    $mpdf = new \Mpdf\Mpdf();
25
+    $mpdf->WriteHTML(contract_html());
26
+    $pdfdata = $mpdf->Output('', \Mpdf\Output\Destination::STRING_RETURN);
27
+
28
+    save_op_contract($pdfdata);
29
+
30
+    redirect('list');
31
+} else {
32
+    system_failure("Sie müssen dem Vertrag zustimmen!");
33
+}
34
+
35
+?>
0 36
new file mode 100644
... ...
@@ -0,0 +1,27 @@
1
+/*
2
+ * -------------------------------------------------------------------------------
3
+ * This file belongs to the Webinterface of schokokeks.org Hosting
4
+ * 
5
+ * Written 2008-2018 by schokokeks.org Hosting, namely
6
+ *    Bernd Wurst <bernd@schokokeks.org>
7
+ *    Hanno Böck <hanno@schokokeks.org>
8
+ *
9
+ * To the extent possible under law, the author(s) have dedicated all copyright 
10
+ * and related and neighboring rights to this software to the public domain 
11
+ * worldwide. This software is distributed without any warranty.
12
+ *
13
+ * You should have received a copy of the CC0 Public Domain Dedication along 
14
+ * with this software. If not, see 
15
+ * http://creativecommons.org/publicdomain/zero/1.0/
16
+ *
17
+ * Nevertheless, in case you use a significant part of this code, we ask (but 
18
+ * not require, see the license) that you keep the authors' names in place and 
19
+ * return your changes to the public. We would be especially happy if you tell 
20
+ * us what you're going to do with this code.
21
+ * -------------------------------------------------------------------------------
22
+ */
23
+
24
+iframe.contract_preview {
25
+    width: 90%;
26
+    height: 50em;
27
+}
0 28
new file mode 100644
... ...
@@ -0,0 +1,100 @@
1
+<!DOCTYPE html>
2
+<html>
3
+<head>
4
+  <meta charset="utf-8">
5
+  <meta name="generator" content="pandoc">
6
+  <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
7
+  <title></title>
8
+  <style type="text/css">code{white-space: pre;}</style>
9
+  <!--[if lt IE 9]>
10
+    <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
11
+  <![endif]-->
12
+</head>
13
+<body>
14
+<h2 id="auftraggeber-verantwortlicher">Auftraggeber (Verantwortlicher):</h2>
15
+<p>((ADRESSE))</p>
16
+<h2 id="auftragnehmer-auftragsverarbeiter">Auftragnehmer (Auftragsverarbeiter):</h2>
17
+<p>schokokeks.org Hosting<br />
18
+B. Wurst und J. Böck GbR<br />
19
+Köchersberg 32<br />
20
+71540 Murrhardt</p>
21
+<p>E-Mail-Adresse: root@schokokeks.org</p>
22
+<p>Vertreten durch Bernd Wurst und Johannes Böck</p>
23
+<h1 id="gegenstand-und-dauer-der-vereinbarung">1. Gegenstand und Dauer der Vereinbarung</h1>
24
+<p>Der Auftrag umfasst die Bereitstellung von Webhosting-Dienstleistungen sowie der damit in Zusammenhang stehenden Leistungen wie beispielsweise Domainregistrierungen, E-Mail-Verarbeitung, etc.</p>
25
+<p>Der Auftragnehmer stellt dafür Infrastruktur zur Verfügung, die der Auftragnehmer zur Speicherung von Daten nutzen kann (z.B. Zugriff über SSH, FTP, Webserver).</p>
26
+<p>Der Vertragsgegenstand ist nicht die Verarbeitung oder Nutzung von personenbezogenen Daten durch den Auftragnehmer. Lediglich kann ein Zugriff auf die Daten oder eine automatisierte Verarbeitung der Daten durch den Auftragnehmer nicht ausgeschlossen werden (z.B. im Rahmen von Backups oder Supportleistungen).</p>
27
+<p>Der Auftragnehmer wird personenbezogene Daten von Dritten nur in sofern erheben, wie dies im Rahmen des E-Mail- und Webhosting üblich bzw. vom Auftraggeber explizit angefordert wurde (z.B. Logfiles).</p>
28
+<p>Die vertraglich vereinbarte Dienstleistung wird ausschließlich in einem Mitgliedsstaat der Europäischen Union oder in einem Vertragsstaat des Abkommens über den Europäischen Wirtschaftsraum erbracht. Jede Verlagerung der Dienstleistung oder von Teilarbeiten dazu in ein Drittland bedarf der vorherigen Zustimmung des Auftraggebers und darf nur erfolgen, wenn die besonderen Voraussetzungen der Art. 44 ff. DS-GVO erfüllt sind (z. B. Angemessenheitsbeschluss der Kommission, Standarddatenschutzklauseln, genehmigte Verhaltensregeln).</p>
29
+<h2 id="dauer-des-auftrags">Dauer des Auftrags</h2>
30
+<p>Die Laufzeit dieses Vertrags ist gebunden an die Erbringung der Hosting- Dienstleistungen durch den Auftragnehmer an den Auftraggeber. Der Vetrag endet automatisch, wenn der Auftragnehmer keine Hosting-Dienstleistungen mehr an den Auftraggeber erbringt.</p>
31
+<p>Der Auftraggeber kann den Vertrag jederzeit ohne Einhaltung einer Frist kündigen, wenn ein schwerwiegender Verstoß des Auftragnehmers gegen Datenschutzvorschriften oder die Bestimmungen dieses Vertrages vorliegt, der Auftragnehmer eine Weisung des Auftraggebers nicht ausführen kann oder will oder der Auftragnehmer Kontrollrechte des Auftraggebers vertragswidrig verweigert.</p>
32
+<p>Insbesondere die Nichteinhaltung der in diesem Vertrag vereinbarten und aus Art. 28 DS-GVO abgeleiteten Pflichten stellt einen schweren Verstoß dar.</p>
33
+<h1 id="art-und-zweck-der-verarbeitung-art-der-personenbezogenen-daten-sowie-kategorien-betroffener-personen">2. Art und Zweck der Verarbeitung, Art der personenbezogenen Daten sowie Kategorien betroffener Personen</h1>
34
+<p>Art und Umfang der Datenverarbeitung ergeben sich aus der zugrunde liegenden Hosting-Vereinbarung.</p>
35
+<p>Der Auftragnehmer wird die ihm zur Verfügung gestellten personenbezogenen Daten ausschließlich zur Erfüllung seiner vertraglich geschuldeten Leistung verarbeiten. Dem Auftragnehmer ist es gestattet, betrieblich erforderliche Duplikate der Daten anzufertigen. Die Integrität und Vertraulichkeit der Daten muss dabei gewährleistet bleiben.</p>
36
+<p>Der Auftragnehmer wird vom Auftraggeber zum jeweiligen Zweck übermittelte Daten speichern und verarbeiten um die vertragsgemäße Leistung zu erbringen. Dies beinhaltet z.B. die Weitergabe von Domain-Inhaber-Daten an die zuständige Registrierungsstelle.</p>
37
+<h2 id="art-der-personenbezogenen-daten">Art der personenbezogenen Daten</h2>
38
+<p>(entsprechend der Definition von Art. 4 Nr. 1 DS-GVO)</p>
39
+<ul>
40
+<li>Personenstammdaten</li>
41
+<li>Kommunikationsdaten</li>
42
+<li>Vertragsstammdaten</li>
43
+<li>Abrechnungs- und Zahlungsdaten</li>
44
+</ul>
45
+<h2 id="kategorien-betroffener-personen">Kategorien betroffener Personen</h2>
46
+<p>(entsprechend der Definition von Art. 4 Nr. 1 DS-GVO)</p>
47
+<ul>
48
+<li>Kunden / Abonnenten (des Auftraggebers)</li>
49
+<li>Interessenten</li>
50
+<li>Beschäftigte</li>
51
+<li>Lieferanten / Handelsvertreter / Kontaktpersonen</li>
52
+</ul>
53
+<h1 id="rechte-und-pflichten-sowie-weisungsbefugnisse-des-auftraggebers">3. Rechte und Pflichten sowie Weisungsbefugnisse des Auftraggebers</h1>
54
+<p>Für die Beurteilung der Zulässigkeit der Verarbeitung gemäß Art. 6 Abs. 1 DS-GVO sowie für die Wahrung der Rechte der betroffenen Personen nach den Art. 12 bis 22 DS-GVO ist allein der Auftraggeber verantwortlich. Gleichwohl ist der Auftragnehmer verpflichtet, alle solche Anfragen, sofern sie erkennbar ausschließlich an den Auftraggeber gerichtet sind, unverzüglich an diesen weiterzuleiten.</p>
55
+<p>Der Auftraggeber erteilt alle Aufträge, Teilaufträge und Weisungen in der Regel schriftlich oder in einem dokumentierten elektronischen Format. Mündliche Weisungen sind unverzüglich schriftlich oder in einem dokumentierten elektronischen Format zu bestätigen.</p>
56
+<p>Der Auftraggeber ist berechtigt, sich wie unter Nr. 4 festgelegt vor Beginn der Verarbeitung und sodann regelmäßig in angemessener Weise von der Einhaltung der beim Auftragnehmer getroffenen technischen und organisatorischen Maßnahmen sowie der in diesem Vertrag festgelegten Verpflichtungen zu überzeugen.</p>
57
+<p>Der Auftraggeber informiert den Auftragnehmer unverzüglich, wenn er Fehler oder Unregelmäßigkeiten bei der Prüfung der Auftragsergebnisse feststellt.</p>
58
+<p>Der Auftraggeber ist verpflichtet, alle im Rahmen des Vertragsverhältnisses erlangten Kenntnisse von Geschäftsgeheimnissen und Datensicherheitsmaßnahmen des Auftragnehmers vertraulich zu behandeln. Diese Verpflichtung bleibt auch nach Beendigung dieses Vertrages bestehen.</p>
59
+<h1 id="pflichten-des-auftragnehmers">4. Pflichten des Auftragnehmers</h1>
60
+<p>Der Auftragnehmer verarbeitet personenbezogene Daten ausschließlich im Rahmen der getroffenen Vereinbarungen und nach Weisungen des Auftraggebers, sofern er nicht zu einer anderen Verarbeitung durch das Recht der Union oder der Mitgliedstaaten, dem der Auftragsverarbeiter unterliegt, hierzu verpflichtet ist (z. B. Ermittlungen von Strafverfolgungs- oder Staatsschutzbehörden); in einem solchen Fall teilt der Auftragsverarbeiter dem Verantwortlichen diese rechtlichen Anforderungen vor der Verarbeitung mit, sofern das betreffende Recht eine solche Mitteilung nicht wegen eines wichtigen öffentlichen Interesses verbietet (Art. 28 Abs. 3 Satz 2 lit. a DS-GVO).</p>
61
+<p>Der Auftragnehmer verwendet die zur Verarbeitung überlassenen personenbezogenen Daten für keine anderen, insbesondere nicht für eigene Zwecke.</p>
62
+<p>Der Auftragnehmer sichert im Bereich der auftragsgemäßen Verarbeitung von personenbezogenen Daten die vertragsgemäße Abwicklung aller vereinbarten Maßnahmen zu.</p>
63
+<p>Zur Erfüllung der Rechte der betroffenen Personen nach Art. 12 bis 22 DS-GVO durch den Auftraggeber, an der Erstellung der Verzeichnisse von Verarbeitungstätigkeiten sowie bei erforderlichen Datenschutz- Folgeabschätzungen des Auftraggebers ist die Mitwirkung der Auftragnehmers regelmäßig nicht erforderlich, da der Auftraggeber selbst Zugriffsmöglichkeiten auf die von ihm in Anspruch genommenen Speicherorte hat.</p>
64
+<p>Sofern eine Mitwirkung des Auftragnehmers erforderlich ist, steht dem Auftraggeber dabei ein umfassendes Weisungsrecht über Art, Umfang und Verfahren der Datenverarbeitung gemäß Art. 29 i.V.m. 28 DS-GVO zu. Der Auftragnehmer wird den Auftraggeber unverzüglich darauf aufmerksam machen, wenn eine vom Auftraggeber erteilte Weisung seiner Meinung nach gegen gesetzliche Vorschriften verstößt (Art. 28 Abs. 3 Satz 3 DS-GVO). Der Auftragnehmer ist berechtigt, die Durchführung der entsprechenden Weisung solange auszusetzen, bis sie durch den Verantwortlichen beim Auftraggeber nach Überprüfung bestätigt oder geändert wird.</p>
65
+<p>Der Auftragnehmer hat personenbezogene Daten aus dem Auftragsverhältnis zu berichtigen, zu löschen oder deren Verarbeitung einzuschränken, wenn der Auftraggeber dies mittels einer Weisung verlangt und berechtigte Interessen des Auftragnehmers dem nicht entgegenstehen.</p>
66
+<p>Auskünfte über personenbezogene Daten aus dem Auftragsverhältnis an Dritte oder den Betroffenen darf der Auftragnehmer nur nach vorheriger Weisung oder Zustimmung durch den Auftraggeber erteilen.</p>
67
+<p>Die Verarbeitung und Speicherung der Daten erfolgt ausschließlich in einem physikalisch geschützten Rechenzentrum. Daher ist eine Kontrolle der vertraglichen Vereinbarungen nach Art. 28 Abs. 3 Satz 2 lit. h DS-GVO auf eine Überprüfung der elektronisch zugänglichen Informationen beschränkt. Eine Inspektion vor Ort in den Rämlichkeiten des Auftragnehmers ist ausgeschlossen, eine Datenspeicherung und -verarbeitung findet dort nicht statt.</p>
68
+<p>Ersatzweise wird verwiesen auf entsprechende Zertifizierungen und Kontrollvorkehrungen beim jeweils betroffenen Unterauftragnehmer. Der Auftragnehmer hat zu diesem Zweck einen einschlägigen Vertrag zur Auftragsverarbeitung mit dem Unterauftragnehmer abgeschlossen.</p>
69
+<p>Der Auftragnehmer bestätigt, dass ihm die für die Auftragsverarbeitung einschlägigen datenschutzrechtlichen Vorschriften der DS-GVO bekannt sind.</p>
70
+<p>Der Auftragnehmer verpflichtet sich, bei der auftragsgemäßen Verarbeitung der personenbezogenen Daten des Auftraggebers die Vertraulichkeit zu wahren. Diese besteht auch nach Beendigung des Vertrages fort.</p>
71
+<p>Ein betrieblicher Datenschutzbeauftragter ist beim Auftragnehmer nicht bestellt, da die gesetzliche Notwendigkeit für eine Bestellung nicht vorliegt.</p>
72
+<h1 id="mitteilungspflichten-des-auftragnehmers-bei-störungen-der-verarbeitung-und-bei-verletzungen-des-schutzes-personenbezogener-daten">5. Mitteilungspflichten des Auftragnehmers bei Störungen der Verarbeitung und bei Verletzungen des Schutzes personenbezogener Daten</h1>
73
+<p>Der Auftragnehmer teilt dem Auftraggeber unverzüglich Störungen, Verstöße des Auftragnehmers oder der bei ihm beschäftigten Personen sowie gegen datenschutzrechtliche Bestimmungen oder die im Auftrag getroffenen Festlegungen sowie den Verdacht auf Datenschutzverletzungen oder Unregelmäßigkeiten bei der Verarbeitung personenbezogener Daten mit. Dies gilt vor allem auch im Hinblick auf eventuelle Melde- und Benachrichtigungspflichten des Auftraggebers nach Art. 33 und Art. 34 DS-GVO. Der Auftragnehmer sichert zu, den Auftraggeber erforderlichenfalls bei seinen Pflichten nach Art. 33 und 34 DS-GVO angemessen zu unterstützen (Art. 28 Abs. 3 Satz 2 lit. f DS-GVO). Meldungen nach Art. 33 oder 34 DS-GVO für den Auftraggeber darf der Auftragnehmer nur nach vorheriger Weisung gem. Ziff. 4 dieses Vertrages durchführen.</p>
74
+<h1 id="unterauftragsverhältnisse-mit-subunternehmern-art.-28-abs.-3-satz-2-lit.-d-ds-gvo">6. Unterauftragsverhältnisse mit Subunternehmern (Art. 28 Abs. 3 Satz 2 lit. d DS-GVO)</h1>
75
+<p>Die Beauftragung von Subunternehmern zur Verarbeitung von Daten des Auftraggebers ist dem Auftragnehmer gestattet. Dieser Vertrag stellt zugleich die entsprechende Genehmigung nach Art. 28 Abs. 2 Satz 1 DS-GVO dar.</p>
76
+<p>Eine Beauftragung von Subunternehmern in Drittstaaten darf nur erfolgen, wenn die besonderen Voraussetzungen der Art. 44 ff. DS-GVO erfüllt sind (z. B. Angemessenheitsbeschluss der Kommission, Standarddatenschutzklauseln, genehmigte Verhaltensregeln).</p>
77
+<p>Der Auftragnehmer hat vertraglich sicherzustellen, dass die vereinbarten Regelungen zwischen Auftraggeber und Auftragnehmer auch gegenüber Subunternehmern gelten. In dem Vertrag mit dem Subunternehmer sind die Angaben so konkret festzulegen, dass die Verantwortlichkeiten des Auftragnehmers und des Subunternehmers deutlich voneinander abgegrenzt werden. Werden mehrere Subunternehmer eingesetzt, so gilt dies auch für die Verantwortlichkeiten zwischen diesen Subunternehmern. Insbesondere muss der Auftraggeber berechtigt sein, im Bedarfsfall angemessene Überprüfungen und Inspektionen, auch vor Ort, bei Subunternehmern durchzuführen oder durch von ihm beauftragte Dritte durchführen zu lassen.</p>
78
+<p>Der Vertrag mit dem Subunternehmer muss schriftlich abgefasst werden, was auch in einem elektronischen Format erfolgen kann (Art. 28 Abs. 4 und Abs. 9 DS-GVO).</p>
79
+<p>Die Weiterleitung von Daten an den Subunternehmer ist erst zulässig, wenn der Subunternehmer die Verpflichtungen nach Art. 29 und Art. 32 Abs. 4 DS-GVO bezüglich seiner Beschäftigten erfüllt hat.</p>
80
+<p>Der Auftragnehmer haftet gegenüber dem Auftraggeber dafür, dass der Subunternehmer den Datenschutzpflichten nachkommt, die ihm durch den Auftragnehmer im Einklang mit dem vorliegenden Vertragsabschnitt vertraglich auferlegt wurden.</p>
81
+<p>Zurzeit sind für den Auftragnehmer die in Anlage 2 mit Namen, Anschrift und Auftragsinhalt bezeichneten Subunternehmer mit der Verarbeitung von personenbezogenen Daten in dem dort genannten Umfang beschäftigt. Mit deren Beauftragung erklärt sich der Auftraggeber einverstanden.</p>
82
+<p>Der Auftragsverarbeiter informiert den Verantwortlichen immer über jede beabsichtigte Änderung in Bezug auf die Hinzuziehung neuer oder die Ersetzung bisheriger Subunternehmer, wodurch der Auftraggeber die Möglichkeit erhält, gegen derartige Änderungen Einspruch zu erheben (§ 28 Abs. 2 Satz 2 DS-GVO).</p>
83
+<h1 id="technische-und-organisatorische-maßnahmen-nach-art.-32-ds-gvo-art.-28-abs.-3-satz-2-lit.-c-ds-gvo">7. Technische und organisatorische Maßnahmen nach Art. 32 DS-GVO (Art. 28 Abs. 3 Satz 2 lit. c DS-GVO)</h1>
84
+<p>Der Auftragnehmer gestaltet in seinem Verantwortungsbereich die innerbetriebliche Organisation so, dass sie den Anforderungen des Datenschutzes gerecht wird. Er trifft dabei technische und organisatorische Maßnahmen zur angemessenen Sicherung der Daten um den Anforderungen der DS-GVO zu entsprechen.</p>
85
+<p>In Anlage 1 sind die aktuell getroffenen Maßnahmen aufgeführt.</p>
86
+<p>Die technischen und organisatorischen Maßnahmen unterliegen dem technischen Fortschritt und der Weiterentwicklung. Insoweit ist es dem Auftragnehmer gestattet, alternative geeignete Maßnahmen umzusetzen. Er muss den Auftraggeber hierüber auf Anfrage informieren und sicherstellen, dass das Sicherheitsniveau der festgelegten Maßnahme nicht unterschritten wird. Der Auftragnehmer hat die Sicherheit gem. Art. 28 Abs. 3 lit. c, 32 DS-GVO insbesondere in Verbindung mit Art. 5 Abs. 1, Abs. 2 DS-GVO herzustellen. Insgesamt handelt es sich bei den zu treffenden Maßnahmen um Maßnahmen der Datensicherheit und zur Gewährleistung eines dem Risiko angemessenen Schutzniveaus hinsichtlich der Vertraulichkeit, der Integrität, der Verfügbarkeit sowie der Belastbarkeit der Systeme.</p>
87
+<p>Wesentliche Änderungen sind zu dokumentieren.</p>
88
+<h1 id="verpflichtungen-des-auftragnehmers-nach-beendigung-des-auftrags-art.-28-abs.-3-satz-2-lit.-g-ds-gvo">8. Verpflichtungen des Auftragnehmers nach Beendigung des Auftrags, Art. 28 Abs. 3 Satz 2 lit. g DS-GVO</h1>
89
+<p>Die vom Auftraggeber auf dem vom Auftragnehmer bereitgestellten Speicherplatz gespeicherten Daten werden nach Beendigung des Auftragsverhältnisses in vollem Umfang gelöscht. Sofern nach dem Unionsrecht oder dem Recht der Mitgliedstaaten eine Verpflichtung zur Speicherung der personenbezogenen Daten besteht, hat der Auftraggeber diese Speicherung selbst vorzunehmen.</p>
90
+<p>Zu einem Datenträgeraustausch gemäß Art. 28 Abs. 3 Satz 2 lit. g DS-GVO zwischen den Beteiligten dieser Auftragsverarbeitung kommt es nicht. Insoweit ist eine Rückgabe nicht zu regeln.</p>
91
+<h1 id="sonstiges">9. Sonstiges</h1>
92
+<p>Vereinbarungen zu den technischen und organisatorischen Maßnahmen sowie Kontroll- und Prüfungsunterlagen (auch zu Subunternehmen) sind von beiden Vertragspartnern für ihre Geltungsdauer und anschließend noch für drei volle Kalenderjahre aufzubewahren.</p>
93
+<p>Für Nebenabreden ist grundsätzlich die Schriftform oder ein dokumentiertes elektronisches Format erforderlich.</p>
94
+<p>Sollten einzelne Teile dieser Vereinbarung unwirksam sein, so berührt dies die Wirksamkeit der Vereinbarung im Übrigen nicht.</p>
95
+<p>Datum: ((DATUM))</p>
96
+<p>Der Vertrag wurde elektronisch geschlossen und ist daher nicht unterschrieben.</p>
97
+<p>Anlage 1: Maßnahmen<br />
98
+Anlage 2: Subunternehmer</p>
99
+</body>
100
+</html>