Browse code

added support for SRV records and warning at collission

Bernd Wurst authored on01/05/2020 08:07:42
Showing1 changed files
... ...
@@ -173,6 +173,14 @@ if ($type == 'mx') {
173 173
 }
174 174
 
175 175
 
176
+if ($type == 'srv') {
177
+    $form .= '
178
+<tr><td><label for="spec">Priorität:</label></td><td><input type="text" name="spec" id="spec" value="'.$data['spec'].'" /></td></tr>
179
+<tr><td><label for="data">Ziel (Server:Port):</label></td><td><input type="text" name="data" id="data" value="'.$data['data'].'" /></td></tr>
180
+';
181
+}
182
+
183
+
176 184
 output(html_form('dns_record_edit', 'dns_record_save', "type={$type}&domain={$domain->id}&id={$_REQUEST['id']}", '<table>
177 185
 <tr><td><label for="hostname">Hostname:</label></td><td><input type="text" name="hostname" id="hostname" value="'.$data['hostname'].'" />&#160;<strong>.'.$domain->fqdn.'</strong></td></tr>
178 186
 '.$form.'
Browse code

Umstellung von filter_input_general() auf filter_output_html()

Bernd Wurst authored on21/09/2019 17:07:48
Showing1 changed files
... ...
@@ -118,7 +118,7 @@ if ($type == 'ptr' || $type == 'cname') {
118 118
 
119 119
 if ($type == 'spf' || $type == 'txt') {
120 120
     $form .= '
121
-<tr><td><label for="data">Inhalt:</label></td><td><input type="text" name="data" id="data" value="'.filter_input_general($data['data']).'" /></td></tr>
121
+<tr><td><label for="data">Inhalt:</label></td><td><input type="text" name="data" id="data" value="'.filter_output_html($data['data']).'" /></td></tr>
122 122
 ';
123 123
 }
124 124
 
... ...
@@ -140,7 +140,7 @@ if ($type == 'sshfp') {
140 140
 
141 141
     $form .= '
142 142
 <tr><td><label for="spec">Algorithmus:</label></td><td><select name="spec" id="spec">'.$option.'</select></td></tr>
143
-<tr><td><label for="data">Fingerabdruck:</label></td><td><input type="text" name="data" id="data" value="'.$data['data'].'" /></td></tr>
143
+<tr><td><label for="data">Fingerabdruck:</label></td><td><input type="text" name="data" id="data" value="'.filter_output_html($data['data']).'" /></td></tr>
144 144
 ';
145 145
 }
146 146
 
Browse code

Fix coding style with php-cs-checker, see https://cs.sensiolabs.org/

Hanno authored on26/06/2018 13:58:19
Showing1 changed files
... ...
@@ -8,7 +8,7 @@ Written 2008-2018 by schokokeks.org Hosting, namely
8 8
 
9 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 10
 
11
-You should have received a copy of the CC0 Public Domain Dedication along with this software. If not, see 
11
+You should have received a copy of the CC0 Public Domain Dedication along with this software. If not, see
12 12
 http://creativecommons.org/publicdomain/zero/1.0/
13 13
 
14 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.
... ...
@@ -26,65 +26,64 @@ require_once('dnsinclude.php');
26 26
 $section = 'dns_dns';
27 27
 
28 28
 $data = array();
29
-$type = NULL;
29
+$type = null;
30 30
 
31 31
 $dyndns = false;
32 32
 $dyndns_accounts = array();
33
-foreach (get_dyndns_accounts() AS $t)
34
-{
35
-  $dyndns_accounts[$t['id']] = $t['handle'];
33
+foreach (get_dyndns_accounts() as $t) {
34
+    $dyndns_accounts[$t['id']] = $t['handle'];
36 35
 }
37 36
 
38
-if (isset($_REQUEST['type']) && $_REQUEST['type'] == "dyndns")
39
-{
40
-  $_REQUEST['type'] = 'a';
41
-  $dyndns = true;
37
+if (isset($_REQUEST['type']) && $_REQUEST['type'] == "dyndns") {
38
+    $_REQUEST['type'] = 'a';
39
+    $dyndns = true;
42 40
 }
43
-if (isset($_REQUEST['type']) && $_REQUEST['type'] == "dyndns_aaaa")
44
-{
45
-  $_REQUEST['type'] = 'aaaa';
46
-  $dyndns = true;
41
+if (isset($_REQUEST['type']) && $_REQUEST['type'] == "dyndns_aaaa") {
42
+    $_REQUEST['type'] = 'aaaa';
43
+    $dyndns = true;
47 44
 }
48 45
 
49 46
 
50 47
 $new = false;
51
-if ($_REQUEST['id'] == 'new')
52
-{
53
-  $new = true;
54
-  $data = blank_dns_record($_REQUEST['type']);
55
-  $domain = new Domain((int) $_REQUEST['domain']);
56
-  $domain->ensure_userdomain();
57
-  $type = $_REQUEST['type'];
58
-  if (! in_array($type, $valid_record_types))
59
-    system_failure('Ungültiger Record-Typ!');
60
-  $data['domain'] = $domain->id;
61
-  if ($dyndns)
62
-    $data['ttl'] = 120;
63
-}
64
-
65
-if (! $new)
66
-{
67
-  $data = get_dns_record($_REQUEST['id']);
68
-  $type = $data['type'];
69
-  $dyndns = isset($data['dyndns']);
70
-  $domain = new Domain((int) $data['domain']);
71
-  $domain->ensure_userdomain();
72
-  if (! in_array($type, $valid_record_types))
73
-    system_failure('Ungültiger Record-Typ!');
74
-}
75
-
76
-
77
-if ($new)
78
-  title('DNS-Record erstellen');
79
-else
80
-  title('DNS-Record bearbeiten');
48
+if ($_REQUEST['id'] == 'new') {
49
+    $new = true;
50
+    $data = blank_dns_record($_REQUEST['type']);
51
+    $domain = new Domain((int) $_REQUEST['domain']);
52
+    $domain->ensure_userdomain();
53
+    $type = $_REQUEST['type'];
54
+    if (! in_array($type, $valid_record_types)) {
55
+        system_failure('Ungültiger Record-Typ!');
56
+    }
57
+    $data['domain'] = $domain->id;
58
+    if ($dyndns) {
59
+        $data['ttl'] = 120;
60
+    }
61
+}
62
+
63
+if (! $new) {
64
+    $data = get_dns_record($_REQUEST['id']);
65
+    $type = $data['type'];
66
+    $dyndns = isset($data['dyndns']);
67
+    $domain = new Domain((int) $data['domain']);
68
+    $domain->ensure_userdomain();
69
+    if (! in_array($type, $valid_record_types)) {
70
+        system_failure('Ungültiger Record-Typ!');
71
+    }
72
+}
73
+
74
+
75
+if ($new) {
76
+    title('DNS-Record erstellen');
77
+} else {
78
+    title('DNS-Record bearbeiten');
79
+}
81 80
 
82 81
 if (strtoupper($type) == 'NS') {
83
-  output('<p style="border: 2px solid red; padding: 1em; padding-left: 4em;"><img src="'.$prefix.'images/warning.png" style="margin-left: -3em; float: left;" /><strong>Bitte beachten Sie:</strong> Das Ändern der DNS-Server für die Stammdomain wird nicht funktionieren. Bitte geben Sie unbedingt einen Hostname ein um eine Subdomain auf einen anderen DNS-Server zu delegieren.</p>');
82
+    output('<p style="border: 2px solid red; padding: 1em; padding-left: 4em;"><img src="'.$prefix.'images/warning.png" style="margin-left: -3em; float: left;" /><strong>Bitte beachten Sie:</strong> Das Ändern der DNS-Server für die Stammdomain wird nicht funktionieren. Bitte geben Sie unbedingt einen Hostname ein um eine Subdomain auf einen anderen DNS-Server zu delegieren.</p>');
84 83
 }
85 84
 
86 85
 if (strtoupper($type) == 'MX' && domain_is_maildomain($domain->id)) {
87
-  output('<p style="border: 2px solid red; padding: 1em; padding-left: 4em;"><img src="'.$prefix.'images/warning.png" style="margin-left: -3em; float: left;" /><strong>Bitte beachten Sie:</strong> Wenn Sie die Mail-Verarbeitung auf Servern von '.$config['company_name'].' nicht nutzen möchten, sollten Sie <a href="'.$prefix.'go/email/domains">die lokale Mail-Verarbeitung für diese Domain ausschalten</a>.</p>');
86
+    output('<p style="border: 2px solid red; padding: 1em; padding-left: 4em;"><img src="'.$prefix.'images/warning.png" style="margin-left: -3em; float: left;" /><strong>Bitte beachten Sie:</strong> Wenn Sie die Mail-Verarbeitung auf Servern von '.$config['company_name'].' nicht nutzen möchten, sollten Sie <a href="'.$prefix.'go/email/domains">die lokale Mail-Verarbeitung für diese Domain ausschalten</a>.</p>');
88 87
 }
89 88
 
90 89
 output('<p style="border: 2px solid red; padding: 1em; padding-left: 4em;"><img src="'.$prefix.'images/warning.png" style="margin-left: -3em; float: left;" /><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>');
... ...
@@ -93,84 +92,81 @@ output('<p style="border: 2px solid red; padding: 1em; padding-left: 4em;"><img
93 92
 output('<p>Record-Typ: '.strtoupper($type).'</p>');
94 93
 
95 94
 $submit = 'Speichern';
96
-if ($new) 
97
-  $submit = 'Anlegen';
95
+if ($new) {
96
+    $submit = 'Anlegen';
97
+}
98 98
 
99 99
 $form = '';
100 100
 
101
-if (! $dyndns && ($type == 'a' || $type == 'aaaa'))
102
-{
103
-  $form .= '
101
+if (! $dyndns && ($type == 'a' || $type == 'aaaa')) {
102
+    $form .= '
104 103
 <tr><td><label for="ip">IP-Adresse:</label></td><td><input type="text" name="ip" id="ip" value="'.$data['ip'].'" /></td></tr>
105 104
 ';
106 105
 }
107 106
 
108
-if ($type == 'ns')
109
-{
110
-  $form .= '
107
+if ($type == 'ns') {
108
+    $form .= '
111 109
 <tr><td><label for="data">DNS-Server:</label></td><td><input type="text" name="data" id="data" value="'.$data['data'].'" /></td></tr>
112 110
 ';
113 111
 }
114 112
 
115
-if ($type == 'ptr' || $type == 'cname')
116
-{
117
-  $form .= '
113
+if ($type == 'ptr' || $type == 'cname') {
114
+    $form .= '
118 115
 <tr><td><label for="data">Ziel:</label></td><td><input type="text" name="data" id="data" value="'.$data['data'].'" /></td></tr>
119 116
 ';
120 117
 }
121 118
 
122
-if ($type == 'spf' || $type == 'txt')
123
-{
124
-  $form .= '
119
+if ($type == 'spf' || $type == 'txt') {
120
+    $form .= '
125 121
 <tr><td><label for="data">Inhalt:</label></td><td><input type="text" name="data" id="data" value="'.filter_input_general($data['data']).'" /></td></tr>
126 122
 ';
127 123
 }
128 124
 
129
-if ($type == 'sshfp')
130
-{
131
-  $algs = array(
125
+if ($type == 'sshfp') {
126
+    $algs = array(
132 127
     1 => "RSA",
133 128
     2 => "DSA",
134 129
     3 => "ECDSA",
135 130
     4 => "ED25519" );
136 131
 
137
-  $option="";
138
-  foreach ($algs as $key => $alg) {
139
-    $option .= '<option value="'.$key.'" ';
140
-    if ($key == $data['spec']) $option .= 'selected="selected"';
141
-    $option .= '>'.$alg.' ('.$key.')</option>';
142
-  }
132
+    $option="";
133
+    foreach ($algs as $key => $alg) {
134
+        $option .= '<option value="'.$key.'" ';
135
+        if ($key == $data['spec']) {
136
+            $option .= 'selected="selected"';
137
+        }
138
+        $option .= '>'.$alg.' ('.$key.')</option>';
139
+    }
143 140
 
144
-  $form .= '
141
+    $form .= '
145 142
 <tr><td><label for="spec">Algorithmus:</label></td><td><select name="spec" id="spec">'.$option.'</select></td></tr>
146 143
 <tr><td><label for="data">Fingerabdruck:</label></td><td><input type="text" name="data" id="data" value="'.$data['data'].'" /></td></tr>
147 144
 ';
148 145
 }
149 146
 
150
-if ($type == 'caa')
151
-{
152
-  $option="";
153
-  foreach ($caa_properties as $key => $property) {
154
-    $option .= '<option value="'.$key.'" ';
155
-    if ($key == $data['spec']) $option .= 'selected="selected"';
156
-    $option .= '>'.$property.' ('.$key.')</option>';
157
-  }
158
-  $form .= '
147
+if ($type == 'caa') {
148
+    $option="";
149
+    foreach ($caa_properties as $key => $property) {
150
+        $option .= '<option value="'.$key.'" ';
151
+        if ($key == $data['spec']) {
152
+            $option .= 'selected="selected"';
153
+        }
154
+        $option .= '>'.$property.' ('.$key.')</option>';
155
+    }
156
+    $form .= '
159 157
 <tr><td><label for="spec">Property tag:</label></td><td><select name="spec" id="spec">'.$option.'</select></td></tr>
160 158
 <tr><td><label for="data">Inhalt:</label></td><td><input type="text" name="data" id="data" value="'.$data['data'].'" /></td></tr>
161 159
 ';
162 160
 }
163 161
 
164
-if ($dyndns)
165
-{
166
-  $form .= '
162
+if ($dyndns) {
163
+    $form .= '
167 164
 <tr><td><label for="dyndns">DynDNS-Zugang:</label></td><td>'.html_select('dyndns', $dyndns_accounts, $data['dyndns']).'</td></tr>
168 165
 ';
169 166
 }
170 167
 
171
-if ($type == 'mx')
172
-{
173
-  $form .= '
168
+if ($type == 'mx') {
169
+    $form .= '
174 170
 <tr><td><label for="spec">Priorität:</label></td><td><input type="text" name="spec" id="spec" value="'.$data['spec'].'" /></td></tr>
175 171
 <tr><td><label for="data">Posteingangsserver:</label></td><td><input type="text" name="data" id="data" value="'.$data['data'].'" /></td></tr>
176 172
 ';
... ...
@@ -184,5 +180,3 @@ output(html_form('dns_record_edit', 'dns_record_save', "type={$type}&domain={$do
184 180
 </table>
185 181
 <p><input type="submit" value="'.$submit.'" /></p>
186 182
 '));
187
-
188
-?>
Browse code

IPv6-support für DynDNS

Bernd Wurst authored on14/05/2018 07:37:12
Showing1 changed files
... ...
@@ -40,6 +40,12 @@ if (isset($_REQUEST['type']) && $_REQUEST['type'] == "dyndns")
40 40
   $_REQUEST['type'] = 'a';
41 41
   $dyndns = true;
42 42
 }
43
+if (isset($_REQUEST['type']) && $_REQUEST['type'] == "dyndns_aaaa")
44
+{
45
+  $_REQUEST['type'] = 'aaaa';
46
+  $dyndns = true;
47
+}
48
+
43 49
 
44 50
 $new = false;
45 51
 if ($_REQUEST['id'] == 'new')
Browse code

Text für Autorecords geändert, NS-Records auf der Stammdomain verbieten

Bernd Wurst authored on02/02/2018 05:43:37
Showing1 changed files
... ...
@@ -73,6 +73,10 @@ if ($new)
73 73
 else
74 74
   title('DNS-Record bearbeiten');
75 75
 
76
+if (strtoupper($type) == 'NS') {
77
+  output('<p style="border: 2px solid red; padding: 1em; padding-left: 4em;"><img src="'.$prefix.'images/warning.png" style="margin-left: -3em; float: left;" /><strong>Bitte beachten Sie:</strong> Das Ändern der DNS-Server für die Stammdomain wird nicht funktionieren. Bitte geben Sie unbedingt einen Hostname ein um eine Subdomain auf einen anderen DNS-Server zu delegieren.</p>');
78
+}
79
+
76 80
 if (strtoupper($type) == 'MX' && domain_is_maildomain($domain->id)) {
77 81
   output('<p style="border: 2px solid red; padding: 1em; padding-left: 4em;"><img src="'.$prefix.'images/warning.png" style="margin-left: -3em; float: left;" /><strong>Bitte beachten Sie:</strong> Wenn Sie die Mail-Verarbeitung auf Servern von '.$config['company_name'].' nicht nutzen möchten, sollten Sie <a href="'.$prefix.'go/email/domains">die lokale Mail-Verarbeitung für diese Domain ausschalten</a>.</p>');
78 82
 }
Browse code

Copyright year update

Bernd Wurst authored on13/01/2018 06:07:05
Showing1 changed files
... ...
@@ -2,7 +2,7 @@
2 2
 /*
3 3
 This file belongs to the Webinterface of schokokeks.org Hosting
4 4
 
5
-Written 2008-2014 by schokokeks.org Hosting, namely
5
+Written 2008-2018 by schokokeks.org Hosting, namely
6 6
   Bernd Wurst <bernd@schokokeks.org>
7 7
   Hanno Böck <hanno@schokokeks.org>
8 8
 
Browse code

add caa support

Hanno Böck authored on08/03/2017 23:39:30
Showing1 changed files
... ...
@@ -130,13 +130,27 @@ if ($type == 'sshfp')
130 130
     if ($key == $data['spec']) $option .= 'selected="selected"';
131 131
     $option .= '>'.$alg.' ('.$key.')</option>';
132 132
   }
133
- 
133
+
134 134
   $form .= '
135 135
 <tr><td><label for="spec">Algorithmus:</label></td><td><select name="spec" id="spec">'.$option.'</select></td></tr>
136 136
 <tr><td><label for="data">Fingerabdruck:</label></td><td><input type="text" name="data" id="data" value="'.$data['data'].'" /></td></tr>
137 137
 ';
138 138
 }
139 139
 
140
+if ($type == 'caa')
141
+{
142
+  $option="";
143
+  foreach ($caa_properties as $key => $property) {
144
+    $option .= '<option value="'.$key.'" ';
145
+    if ($key == $data['spec']) $option .= 'selected="selected"';
146
+    $option .= '>'.$property.' ('.$key.')</option>';
147
+  }
148
+  $form .= '
149
+<tr><td><label for="spec">Property tag:</label></td><td><select name="spec" id="spec">'.$option.'</select></td></tr>
150
+<tr><td><label for="data">Inhalt:</label></td><td><input type="text" name="data" id="data" value="'.$data['data'].'" /></td></tr>
151
+';
152
+}
153
+
140 154
 if ($dyndns)
141 155
 {
142 156
   $form .= '
Browse code

add ecdsa and ed25519 support for sshfp

Hanno Böck authored on20/09/2014 11:39:48
Showing1 changed files
... ...
@@ -118,10 +118,21 @@ if ($type == 'spf' || $type == 'txt')
118 118
 
119 119
 if ($type == 'sshfp')
120 120
 {
121
-  $rsadefault = ($data['spec'] == 1) ? ' selected="selected"' : '';
122
-  $dsadefault = ($data['spec'] == 2) ? ' selected="selected"' : '';
121
+  $algs = array(
122
+    1 => "RSA",
123
+    2 => "DSA",
124
+    3 => "ECDSA",
125
+    4 => "ED25519" );
126
+
127
+  $option="";
128
+  foreach ($algs as $key => $alg) {
129
+    $option .= '<option value="'.$key.'" ';
130
+    if ($key == $data['spec']) $option .= 'selected="selected"';
131
+    $option .= '>'.$alg.' ('.$key.')</option>';
132
+  }
133
+ 
123 134
   $form .= '
124
-<tr><td><label for="spec">Algorithmus:</label></td><td><select name="spec" id="spec"><option value="1"'.$rsadefault.'>RSA (1)</option><option value="2"'.$dsadefault.'>DSS (2)</option></select></td></tr>
135
+<tr><td><label for="spec">Algorithmus:</label></td><td><select name="spec" id="spec">'.$option.'</select></td></tr>
125 136
 <tr><td><label for="data">Fingerabdruck:</label></td><td><input type="text" name="data" id="data" value="'.$data['data'].'" /></td></tr>
126 137
 ';
127 138
 }
Browse code

fix 2 xss via txt record

Hanno Böck authored on19/09/2014 10:50:31
Showing1 changed files
... ...
@@ -112,7 +112,7 @@ if ($type == 'ptr' || $type == 'cname')
112 112
 if ($type == 'spf' || $type == 'txt')
113 113
 {
114 114
   $form .= '
115
-<tr><td><label for="data">Inhalt:</label></td><td><input type="text" name="data" id="data" value="'.$data['data'].'" /></td></tr>
115
+<tr><td><label for="data">Inhalt:</label></td><td><input type="text" name="data" id="data" value="'.filter_input_general($data['data']).'" /></td></tr>
116 116
 ';
117 117
 }
118 118
 
Browse code

Lizenzinfos in eigenes Modul ausgelagert und Copyright auf 2014 angepasst

Bernd Wurst authored on08/02/2014 05:45:07
Showing1 changed files
... ...
@@ -2,7 +2,7 @@
2 2
 /*
3 3
 This file belongs to the Webinterface of schokokeks.org Hosting
4 4
 
5
-Written 2008-2013 by schokokeks.org Hosting, namely
5
+Written 2008-2014 by schokokeks.org Hosting, namely
6 6
   Bernd Wurst <bernd@schokokeks.org>
7 7
   Hanno Böck <hanno@schokokeks.org>
8 8
 
Browse code

Updated copyright notice (2012 => 2013)

Bernd Wurst authored on19/01/2013 10:49:50
Showing1 changed files
... ...
@@ -2,7 +2,7 @@
2 2
 /*
3 3
 This file belongs to the Webinterface of schokokeks.org Hosting
4 4
 
5
-Written 2008-2012 by schokokeks.org Hosting, namely
5
+Written 2008-2013 by schokokeks.org Hosting, namely
6 6
   Bernd Wurst <bernd@schokokeks.org>
7 7
   Hanno Böck <hanno@schokokeks.org>
8 8
 
Browse code

Warnung, wenn man bei einer Mail-Domain externe MX-Server eintragen möchte

Bernd Wurst authored on10/09/2012 07:24:22
Showing1 changed files
... ...
@@ -73,6 +73,10 @@ if ($new)
73 73
 else
74 74
   title('DNS-Record bearbeiten');
75 75
 
76
+if (strtoupper($type) == 'MX' && domain_is_maildomain($domain->id)) {
77
+  output('<p style="border: 2px solid red; padding: 1em; padding-left: 4em;"><img src="'.$prefix.'images/warning.png" style="margin-left: -3em; float: left;" /><strong>Bitte beachten Sie:</strong> Wenn Sie die Mail-Verarbeitung auf Servern von '.$config['company_name'].' nicht nutzen möchten, sollten Sie <a href="'.$prefix.'go/email/domains">die lokale Mail-Verarbeitung für diese Domain ausschalten</a>.</p>');
78
+}
79
+
76 80
 output('<p style="border: 2px solid red; padding: 1em; padding-left: 4em;"><img src="'.$prefix.'images/warning.png" style="margin-left: -3em; float: left;" /><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>');
77 81
 
78 82
 
Browse code

Added license tags for CC0, README and COPYING

Bernd Wurst authored on11/03/2012 15:40:04
Showing1 changed files
... ...
@@ -1,4 +1,18 @@
1 1
 <?php
2
+/*
3
+This file belongs to the Webinterface of schokokeks.org Hosting
4
+
5
+Written 2008-2012 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
+*/
2 16
 
3 17
 require_once('inc/base.php');
4 18
 require_once('inc/security.php');
Browse code

SSHFP-Records (Thanks to Martin Gollowitzer)

git-svn-id: https://svn.schokokeks.org/repos/tools/webinterface/trunk@2014 87cf0b9e-d624-0410-a070-f6ee81989793

bernd authored on21/06/2011 15:08:34
Showing1 changed files
... ...
@@ -98,6 +98,16 @@ if ($type == 'spf' || $type == 'txt')
98 98
 ';
99 99
 }
100 100
 
101
+if ($type == 'sshfp')
102
+{
103
+  $rsadefault = ($data['spec'] == 1) ? ' selected="selected"' : '';
104
+  $dsadefault = ($data['spec'] == 2) ? ' selected="selected"' : '';
105
+  $form .= '
106
+<tr><td><label for="spec">Algorithmus:</label></td><td><select name="spec" id="spec"><option value="1"'.$rsadefault.'>RSA (1)</option><option value="2"'.$dsadefault.'>DSS (2)</option></select></td></tr>
107
+<tr><td><label for="data">Fingerabdruck:</label></td><td><input type="text" name="data" id="data" value="'.$data['data'].'" /></td></tr>
108
+';
109
+}
110
+
101 111
 if ($dyndns)
102 112
 {
103 113
   $form .= '
Browse code

Benutze überall title() statt output("<h3>...</h3>")

git-svn-id: https://svn.schokokeks.org/repos/tools/webinterface/trunk@1812 87cf0b9e-d624-0410-a070-f6ee81989793

bernd authored on18/09/2010 13:35:15
Showing1 changed files
... ...
@@ -55,9 +55,9 @@ if (! $new)
55 55
 
56 56
 
57 57
 if ($new)
58
-  output('<h3>DNS-Record erstellen</h3>');
58
+  title('DNS-Record erstellen');
59 59
 else
60
-  output('<h3>DNS-Record bearbeiten</h3>');
60
+  title('DNS-Record bearbeiten');
61 61
 
62 62
 output('<p style="border: 2px solid red; padding: 1em; padding-left: 4em;"><img src="'.$prefix.'images/warning.png" style="margin-left: -3em; float: left;" /><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 63
 
Browse code

Erlaube *useraccounts* das edtieren von DNS-records

git-svn-id: https://svn.schokokeks.org/repos/tools/webinterface/trunk@1731 87cf0b9e-d624-0410-a070-f6ee81989793

bernd authored on06/05/2010 14:49:17
Showing1 changed files
... ...
@@ -5,7 +5,7 @@ require_once('inc/security.php');
5 5
 
6 6
 require_once('class/domain.php');
7 7
 
8
-require_role(ROLE_CUSTOMER);
8
+require_role(ROLE_SYSTEMUSER);
9 9
 
10 10
 require_once('dnsinclude.php');
11 11
 
... ...
@@ -33,7 +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
+  $domain->ensure_userdomain();
37 37
   $type = $_REQUEST['type'];
38 38
   if (! in_array($type, $valid_record_types))
39 39
     system_failure('Ungültiger Record-Typ!');
... ...
@@ -48,7 +48,7 @@ if (! $new)
48 48
   $type = $data['type'];
49 49
   $dyndns = isset($data['dyndns']);
50 50
   $domain = new Domain((int) $data['domain']);
51
-  $domain->ensure_customerdomain();
51
+  $domain->ensure_userdomain();
52 52
   if (! in_array($type, $valid_record_types))
53 53
     system_failure('Ungültiger Record-Typ!');
54 54
 }
Browse code

Diverse XML-Fehler behoben

git-svn-id: https://svn.schokokeks.org/repos/tools/webinterface/trunk@1690 87cf0b9e-d624-0410-a070-f6ee81989793

bernd authored on09/03/2010 15:12:06
Showing1 changed files
... ...
@@ -59,7 +59,7 @@ if ($new)
59 59
 else
60 60
   output('<h3>DNS-Record bearbeiten</h3>');
61 61
 
62
-output('<p style="border: 2px solid red; padding: 1em; padding-left: 4em;"><img src="'.$prefix.'images/warning.png" style="margin-left: -3em; float: left;"><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>');
62
+output('<p style="border: 2px solid red; padding: 1em; padding-left: 4em;"><img src="'.$prefix.'images/warning.png" style="margin-left: -3em; float: left;" /><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 63
 
64 64
 
65 65
 output('<p>Record-Typ: '.strtoupper($type).'</p>');
Browse code

Autodns ein- und ausschaltbar, Konversion von autorecords

git-svn-id: https://svn.schokokeks.org/repos/tools/webinterface/trunk@1463 87cf0b9e-d624-0410-a070-f6ee81989793

bernd authored on07/09/2009 07:11:50
Showing1 changed files
... ...
@@ -21,7 +21,7 @@ foreach (get_dyndns_accounts() AS $t)
21 21
   $dyndns_accounts[$t['id']] = $t['handle'];
22 22
 }
23 23
 
24
-if ($_REQUEST['type'] == "dyndns")
24
+if (isset($_REQUEST['type']) && $_REQUEST['type'] == "dyndns")
25 25
 {
26 26
   $_REQUEST['type'] = 'a';
27 27
   $dyndns = true;
... ...
@@ -77,6 +77,13 @@ if (! $dyndns && ($type == 'a' || $type == 'aaaa'))
77 77
 ';
78 78
 }
79 79
 
80
+if ($type == 'ns')
81
+{
82
+  $form .= '
83
+<tr><td><label for="data">DNS-Server:</label></td><td><input type="text" name="data" id="data" value="'.$data['data'].'" /></td></tr>
84
+';
85
+}
86
+
80 87
 if ($type == 'ptr' || $type == 'cname')
81 88
 {
82 89
   $form .= '
Browse code

SPF und TXT records

git-svn-id: https://svn.schokokeks.org/repos/tools/webinterface/trunk@1462 87cf0b9e-d624-0410-a070-f6ee81989793

bernd authored on07/09/2009 06:05:53
Showing1 changed files
... ...
@@ -84,6 +84,13 @@ if ($type == 'ptr' || $type == 'cname')
84 84
 ';
85 85
 }
86 86
 
87
+if ($type == 'spf' || $type == 'txt')
88
+{
89
+  $form .= '
90
+<tr><td><label for="data">Inhalt:</label></td><td><input type="text" name="data" id="data" value="'.$data['data'].'" /></td></tr>
91
+';
92
+}
93
+
87 94
 if ($dyndns)
88 95
 {
89 96
   $form .= '
Browse code

Nach update-request auf die warte-seite umleiten, dort deutlicher warnen

git-svn-id: https://svn.schokokeks.org/repos/tools/webinterface/trunk@1391 87cf0b9e-d624-0410-a070-f6ee81989793

bernd authored on06/06/2009 13:00:32
Showing1 changed files
... ...
@@ -59,7 +59,7 @@ if ($new)
59 59
 else
60 60
   output('<h3>DNS-Record bearbeiten</h3>');
61 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>');
62
+output('<p style="border: 2px solid red; padding: 1em; padding-left: 4em;"><img src="'.$prefix.'images/warning.png" style="margin-left: -3em; float: left;"><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 63
 
64 64
 
65 65
 output('<p>Record-Typ: '.strtoupper($type).'</p>');
Browse code

Prüfe, ob Domain wirklich die eigene ist.

git-svn-id: https://svn.schokokeks.org/repos/tools/webinterface/trunk@1385 87cf0b9e-d624-0410-a070-f6ee81989793

bernd authored on02/06/2009 11:30:05
Showing1 changed files
... ...
@@ -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';
Browse code

Einige Dummheiten repariert, die beim ersetzen von $config durch config() aufgetreten sind. Zudem einige Closing-Tag-mismatches repariert, die man nur sieht wenn man XHTML-Modus einschaltet

git-svn-id: https://svn.schokokeks.org/repos/tools/webinterface/trunk@1377 87cf0b9e-d624-0410-a070-f6ee81989793

bernd authored on23/05/2009 15:55:23
Showing1 changed files
... ...
@@ -101,6 +101,6 @@ output(html_form('dns_record_edit', 'dns_record_save', "type={$type}&domain={$do
101 101
 <tr><td><label for="ttl">TTL:</label></td><td><input type="text" name="ttl" id="ttl" value="'.$data['ttl'].'" /></td></tr>
102 102
 </table>
103 103
 <p><input type="submit" value="'.$submit.'" /></p>
104
-</p>'));
104
+'));
105 105
 
106 106
 ?>
Browse code

DNs-record-Interface ist jetzt read/write

git-svn-id: https://svn.schokokeks.org/repos/tools/webinterface/trunk@1353 87cf0b9e-d624-0410-a070-f6ee81989793

bernd authored on30/04/2009 14:19:40
Showing1 changed files
... ...
@@ -14,51 +14,93 @@ $section = 'dns_dns';
14 14
 $data = array();
15 15
 $type = NULL;
16 16
 
17
+$dyndns = false;
18
+$dyndns_accounts = array();
19
+foreach (get_dyndns_accounts() AS $t)
20
+{
21
+  $dyndns_accounts[$t['id']] = $t['handle'];
22
+}
23
+
24
+if ($_REQUEST['type'] == "dyndns")
25
+{
26
+  $_REQUEST['type'] = 'a';
27
+  $dyndns = true;
28
+}
29
+
17 30
 $new = false;
18 31
 if ($_REQUEST['id'] == 'new')
19 32
 {
20 33
   $new = true;
21 34
   $data = blank_dns_record($_REQUEST['type']);
22
-  $domain = new Domain((int) $_REQUEST['dom']);
23
-  $type = $_POST['type'];
35
+  $domain = new Domain((int) $_REQUEST['domain']);
36
+  $type = $_REQUEST['type'];
24 37
   if (! in_array($type, $valid_record_types))
25 38
     system_failure('Ungültiger Record-Typ!');
26 39
   $data['domain'] = $domain->id;
40
+  if ($dyndns)
41
+    $data['ttl'] = 120;
27 42
 }
28 43
 
29 44
 if (! $new)
30 45
 {
31 46
   $data = get_dns_record($_REQUEST['id']);
32 47
   $type = $data['type'];
48
+  $dyndns = isset($data['dyndns']);
49
+  $domain = new Domain((int) $data['domain']);
33 50
   if (! in_array($type, $valid_record_types))
34 51
     system_failure('Ungültiger Record-Typ!');
35 52
 }
36 53
 
37 54
 
38
-
39
-
40 55
 if ($new)
41
-  $output .= '<h3>DNS-Record erstellen</h3>';
56
+  output('<h3>DNS-Record erstellen</h3>');
42 57
 else
43
-  $output .= '<h3>DNS-Record bearbeiten</h3>';
58
+  output('<h3>DNS-Record bearbeiten</h3>');
44 59
 
60
+output('<p>Record-Typ: '.strtoupper($type).'</p>');
45 61
 
46
-$action = 'create';
47
-if (! $new)
48
-  $action = 'edit&id='.(int)$_REQUEST['id'];
49
-  
50 62
 $submit = 'Speichern';
51 63
 if ($new) 
52 64
   $submit = 'Anlegen';
53 65
 
54
-$domain = new Domain( (int) $data['domain'] );
66
+$form = '';
67
+
68
+if (! $dyndns && ($type == 'a' || $type == 'aaaa'))
69
+{
70
+  $form .= '
71
+<tr><td><label for="ip">IP-Adresse:</label></td><td><input type="text" name="ip" id="ip" value="'.$data['ip'].'" /></td></tr>
72
+';
73
+}
74
+
75
+if ($type == 'ptr' || $type == 'cname')
76
+{
77
+  $form .= '
78
+<tr><td><label for="data">Ziel:</label></td><td><input type="text" name="data" id="data" value="'.$data['data'].'" /></td></tr>
79
+';
80
+}
81
+
82
+if ($dyndns)
83
+{
84
+  $form .= '
85
+<tr><td><label for="dyndns">DynDNS-Zugang:</label></td><td>'.html_select('dyndns', $dyndns_accounts, $data['dyndns']).'</td></tr>
86
+';
87
+}
88
+
89
+if ($type == 'mx')
90
+{
91
+  $form .= '
92
+<tr><td><label for="spec">Priorität:</label></td><td><input type="text" name="spec" id="spec" value="'.$data['spec'].'" /></td></tr>
93
+<tr><td><label for="data">Posteingangsserver:</label></td><td><input type="text" name="data" id="data" value="'.$data['data'].'" /></td></tr>
94
+';
95
+}
55 96
 
56 97
 
57
-$output .= html_form('dns_record_edit', 'save', 'type=dns&action='.$action, 
58
-'<p>
59
-<label for="hostname">Hostname:</label>&#160;<input type="text" name="hostname" id="hostname" value="'.$data['hostname'].'" />&#160;<strong>.'.$domain->fqdn.'</strong><p>
60
-<p>Typ: 
98
+output(html_form('dns_record_edit', 'dns_record_save', "type={$type}&domain={$domain->id}&id={$_REQUEST['id']}", '<table>
99
+<tr><td><label for="hostname">Hostname:</label></td><td><input type="text" name="hostname" id="hostname" value="'.$data['hostname'].'" />&#160;<strong>.'.$domain->fqdn.'</strong></td></tr>
100
+'.$form.'
101
+<tr><td><label for="ttl">TTL:</label></td><td><input type="text" name="ttl" id="ttl" value="'.$data['ttl'].'" /></td></tr>
102
+</table>
61 103
 <p><input type="submit" value="'.$submit.'" /></p>
62
-</p>');
104
+</p>'));
63 105
 
64 106
 ?>
Browse code

git-svn-id: https://svn.schokokeks.org/repos/tools/webinterface/trunk@1136 87cf0b9e-d624-0410-a070-f6ee81989793

bernd authored on13/08/2008 10:06:00
Showing1 changed files
1 1
new file mode 100644
... ...
@@ -0,0 +1,64 @@
1
+<?php
2
+
3
+require_once('inc/base.php');
4
+require_once('inc/security.php');
5
+
6
+require_once('class/domain.php');
7
+
8
+require_role(ROLE_CUSTOMER);
9
+
10
+require_once('dnsinclude.php');
11
+
12
+$section = 'dns_dns';
13
+
14
+$data = array();
15
+$type = NULL;
16
+
17
+$new = false;
18
+if ($_REQUEST['id'] == 'new')
19
+{
20
+  $new = true;
21
+  $data = blank_dns_record($_REQUEST['type']);
22
+  $domain = new Domain((int) $_REQUEST['dom']);
23
+  $type = $_POST['type'];
24
+  if (! in_array($type, $valid_record_types))
25
+    system_failure('Ungültiger Record-Typ!');
26
+  $data['domain'] = $domain->id;
27
+}
28
+
29
+if (! $new)
30
+{
31
+  $data = get_dns_record($_REQUEST['id']);
32
+  $type = $data['type'];
33
+  if (! in_array($type, $valid_record_types))
34
+    system_failure('Ungültiger Record-Typ!');
35
+}
36
+
37
+
38
+
39
+
40
+if ($new)
41
+  $output .= '<h3>DNS-Record erstellen</h3>';
42
+else
43
+  $output .= '<h3>DNS-Record bearbeiten</h3>';
44
+
45
+
46
+$action = 'create';
47
+if (! $new)
48
+  $action = 'edit&id='.(int)$_REQUEST['id'];
49
+  
50
+$submit = 'Speichern';
51
+if ($new) 
52
+  $submit = 'Anlegen';
53
+
54
+$domain = new Domain( (int) $data['domain'] );
55
+
56
+
57
+$output .= html_form('dns_record_edit', 'save', 'type=dns&action='.$action, 
58
+'<p>
59
+<label for="hostname">Hostname:</label>&#160;<input type="text" name="hostname" id="hostname" value="'.$data['hostname'].'" />&#160;<strong>.'.$domain->fqdn.'</strong><p>
60
+<p>Typ: 
61
+<p><input type="submit" value="'.$submit.'" /></p>
62
+</p>');
63
+
64
+?>