Bessere Prüfung der Domainnamen
Bernd Wurst

Bernd Wurst commited on 2018-02-20 11:35:38
Zeige 1 geänderte Dateien mit 18 Einfügungen und 9 Löschungen.

... ...
@@ -34,12 +34,21 @@ $form = '<p>Domainname: <input type="text" name="domain" size="50" /> <input typ
34 34
 output(html_form('adddomain_search', '', '', $form));
35 35
 
36 36
 if (isset($_REQUEST['domain'])) {
37
-    if (strpos($_REQUEST['domain'], ' ') !== false) {
37
+    $request = $_REQUEST['domain'];
38
+    verify_input_general($request);
39
+    if (substr($request, 0, 4) == 'www.') {
40
+        $request = str_replace('www.', '', $request);
41
+    }
42
+    if (strpos($request, ' ') !== false) {
38 43
         warning('Leerzeichen sind in Domainnamen nicht erlaubt.');
39 44
         redirect('');
40 45
     }
46
+    if (strpos($request, '.') === false) {
47
+        warning('Das ist kein Domainname.');
48
+        redirect('');
49
+    }
41 50
     $dom = new Domain();
42
-    if ($dom->loadByName($_REQUEST['domain']) !== false) {
51
+    if ($dom->loadByName($request) !== false) {
43 52
         if ($dom->is_customerdomain()) {
44 53
             warning('Diese Domain ist bereits in Ihrem Kundenkonto eingetragen!');
45 54
         } else {
... ...
@@ -47,9 +56,9 @@ if (isset($_REQUEST['domain'])) {
47 56
         }
48 57
         redirect('');
49 58
     }
50
-    $avail = api_domain_available($_REQUEST['domain']);
59
+    $avail = api_domain_available($request);
51 60
     if ($avail['status'] == 'available') {
52
-        output('<p class="domain-available">Die Domain '.filter_input_general($_REQUEST['domain']).' ist verfügbar!</p>');
61
+        output('<p class="domain-available">Die Domain '.filter_input_general($request).' ist verfügbar!</p>');
53 62
         # Neue Domain eintragen
54 63
         $data = get_domain_offer($avail['domainSuffix']);
55 64
         if (!$data) {
... ...
@@ -57,7 +66,7 @@ if (isset($_REQUEST['domain'])) {
57 66
         }
58 67
         $form = '<p>Folgende Konditionen gelten bei Registrierung der Domain im nächsten Schritt:</p>
59 68
             <table>
60
-            <tr><td>Domainname:</td><td><strong>'.filter_input_general($_REQUEST['domain']).'</strong></td></tr>
69
+            <tr><td>Domainname:</td><td><strong>'.filter_input_general($request).'</strong></td></tr>
61 70
             <tr><td>Jahresgebühr:</td><td style="text-align: right;">'.$data['gebuehr'].' €</td></tr>';
62 71
         if ($data['setup']) {
63 72
             $form .= '<tr><td>Setup-Gebühr (einmalig):</td><td style="text-align: right;">'.$data['setup'].' €</td></tr>';
... ...
@@ -65,12 +74,12 @@ if (isset($_REQUEST['domain'])) {
65 74
         $form .='</table>';
66 75
 
67 76
 
68
-        $form .= '<p><input type="hidden" name="domain" value="'.filter_input_general($_REQUEST['domain']).'">
77
+        $form .= '<p><input type="hidden" name="domain" value="'.filter_input_general($request).'">
69 78
             <input type="submit" name="submit" value="Ich möchte diese Domain registrieren"></p>';
70 79
         output(html_form('domains_register', 'domainreg', '', $form));
71 80
         output('<p>'.internal_link('domains', 'Zurück').'</p>');
72 81
     } elseif ($avail['status'] == 'registered' || $avail['status'] == 'alreadyRegistered') {
73
-        output('<p class="domain-unavailable">Die Domain '.filter_input_general($_REQUEST['domain']).' ist bereits vergeben.</p>');
82
+        output('<p class="domain-unavailable">Die Domain '.filter_input_general($request).' ist bereits vergeben.</p>');
74 83
 
75 84
         output('<h3>Domain zu '.config('company_name').' umziehen</h3>');
76 85
         if ($avail['status'] == 'registered' && $avail['transferMethod'] != 'authInfo') {
... ...
@@ -120,14 +129,14 @@ if (isset($_REQUEST['domain'])) {
120 129
             <label for="option-email-disable">Nicht für E-Mail nutzen</label>
121 130
             </p>';
122 131
 
123
-        $form .= '<p><input type="hidden" name="domain" value="'.filter_input_general($_REQUEST['domain']).'">
132
+        $form .= '<p><input type="hidden" name="domain" value="'.filter_input_general($request).'">
124 133
             <input type="submit" name="submit" value="Diese Domain bei '.config('company_name').' verwenden"></p>';
125 134
 
126 135
         output(html_form('domains_external', 'useexternal', '', $form));
127 136
         output('</div>');
128 137
 
129 138
     } else {
130
-        output('<p class="domain-unavailable">Die Domain '.filter_input_general($_REQUEST['domain']).' kann nicht registriert werden.</p>');
139
+        output('<p class="domain-unavailable">Die Domain '.filter_input_general($request).' kann nicht registriert werden.</p>');
131 140
 
132 141
         switch ($avail['status']) {
133 142
             case 'nameContainsForbiddenCharacter':
134 143