Prüfe, ob Domain wirklich die eigene ist.
bernd

bernd commited on 2009-06-02 11:30:05
Zeige 5 geänderte Dateien mit 12 Einfügungen und 2 Löschungen.


git-svn-id: https://svn.schokokeks.org/repos/tools/webinterface/trunk@1385 87cf0b9e-d624-0410-a070-f6ee81989793
... ...
@@ -12,6 +12,7 @@ require_once('dnsinclude.php');
12 12
 $section = 'dns_dns';
13 13
 
14 14
 $domain = new Domain((int) $_REQUEST['dom']);
15
+$domain->ensure_customerdomain();
15 16
 
16 17
 DEBUG($domain);
17 18
 
... ...
@@ -33,6 +33,7 @@ if ($_REQUEST['id'] == 'new')
33 33
   $new = true;
34 34
   $data = blank_dns_record($_REQUEST['type']);
35 35
   $domain = new Domain((int) $_REQUEST['domain']);
36
+  $domain->ensure_customerdomain();
36 37
   $type = $_REQUEST['type'];
37 38
   if (! in_array($type, $valid_record_types))
38 39
     system_failure('Ungültiger Record-Typ!');
... ...
@@ -47,6 +48,7 @@ if (! $new)
47 48
   $type = $data['type'];
48 49
   $dyndns = isset($data['dyndns']);
49 50
   $domain = new Domain((int) $data['domain']);
51
+  $domain->ensure_customerdomain();
50 52
   if (! in_array($type, $valid_record_types))
51 53
     system_failure('Ungültiger Record-Typ!');
52 54
 }
... ...
@@ -57,6 +59,9 @@ if ($new)
57 59
 else
58 60
   output('<h3>DNS-Record bearbeiten</h3>');
59 61
 
62
+output('<p><strong>Bitte beachten Sie:</strong> Um Ihnen auch ungewöhniche Konstellationen zu ermöglichen, erlaubt dieses Webinterface sehr großzügige Eintragungen, die eventuell nicht plausibel sind oder vom DNS-Server gar nicht so verstanden werden können. Wir können sicherheitskritische Einträge herausfiltern, jedoch nicht logische Fehler automatisch erkennen. Im Fehlerfall wird meistens Ihre gesamte Domain vom DNS-Server ausgeschlossen, so lange sich Fehler in der Konfiguration befinden. Sollten Sie hier also fehlerhafte Eintragungen machen, kann dies die Erreichbarkeit der betreffenden Domain im Ganzen stören.</p>');
63
+
64
+
60 65
 output('<p>Record-Typ: '.strtoupper($type).'</p>');
61 66
 
62 67
 $submit = 'Speichern';
... ...
@@ -87,6 +87,7 @@ function get_dyndns_records($id)
87 87
   $data = array();
88 88
   while ($entry = mysql_fetch_assoc($result)) {
89 89
     $dom = new Domain((int) $entry['domain']);
90
+    $dom->ensure_customerdomain();
90 91
     $entry['fqdn'] = $entry['hostname'].'.'.$dom->fqdn;
91 92
     if (! $entry['hostname'])
92 93
       $entry['fqdn'] = $dom->fqdn;
... ...
@@ -128,6 +129,7 @@ function get_dns_record($id)
128 129
     system_failure('illegal ID');
129 130
   $data = mysql_fetch_assoc($result);
130 131
   $dom = new Domain( (int) $data['domain']);
132
+  $dom->ensure_customerdomain();
131 133
   DEBUG($data);
132 134
   return $data;
133 135
 }
... ...
@@ -140,6 +142,7 @@ function get_domain_records($dom)
140 142
   $data = array();
141 143
   while ($entry = mysql_fetch_assoc($result)) {
142 144
     $dom = new Domain((int) $entry['domain']);
145
+    $dom->ensure_customerdomain();
143 146
     $entry['fqdn'] = $entry['hostname'].'.'.$dom->fqdn;
144 147
     if (! $entry['hostname'])
145 148
       $entry['fqdn'] = $dom->fqdn;
... ...
@@ -175,6 +178,7 @@ function save_dns_record($id, $record)
175 178
   if (!in_array($record['type'], $implemented_record_types))
176 179
     system_failure('record type '.$record['type'].' not implemented at the moment.');
177 180
   $dom = new Domain( (int) $record['domain'] );
181
+  $dom->ensure_customerdomain();
178 182
   if (! $dom->id)
179 183
     system_failure('invalid domain');
180 184
   verify_input_hostname($record['hostname'], true);
... ...
@@ -35,6 +35,7 @@ function get_jabberaccount_details($id)
35 35
   else
36 36
   {
37 37
     $dom = new Domain((int) $data['domain']);
38
+    $dom->ensure_customerdomain();
38 39
     $data['domain'] = $dom->fqdn;
39 40
   }
40 41
   return $data;
... ...
@@ -18,8 +18,7 @@ if ($_POST['target'] == 'new')
18 18
   $domainid = (int) $_POST['domain'];
19 19
   if ($domainid != -1) {
20 20
     $domain = new Domain( (int) $_POST['domain'] );
21
-    if ($domain->useraccount != $_SESSION['userinfo']['uid'])
22
-      system_failure('Ungültige Domain');
21
+    $domain->ensure_userdomain();
23 22
     $domainid = $domain->id;
24 23
   }
25 24
 
26 25