Register_XH

Ein CMSimple Support Forum für deutsch sprechende Nutzer und Entwickler
Caravaner
Posts: 112
Joined: Sat Oct 05, 2019 5:20 pm
Location: Wadgassen (Saarland)
Contact:

Re: Register_XH

Post by Caravaner » Wed Mar 10, 2021 3:18 pm

mhz wrote:
Wed Mar 10, 2021 12:38 pm
Was spricht denn dagegen, diese potentiellen Mitentwickler auf eine freie (nicht geschützte) Seite zu leiten? Ich könnte mir vorstellen, dass vor diese Weiterleitung ein Hinweis mit einem OK-Button geschaltet ist, den es zu bestätigen gilt.
Hallo Michael,
ich meine irgendwo gelesen zu haben, dass diese Roboter, gegen die das Ganze helfen soll, eine einfache Checkbox "betätigen" können.
Diese zu schützenden Seiten sind php-Tools, die außerhalb des eigentlichen CMS laufen. Da sie, von mir unkontrolliert, Daten und Dateien auf dem Server anlegen können (das Teil ist eben noch nicht fertig und keine Schutzmechanismen vorhanden), möchte ich auf jeden Fall vermeiden, das die Crowler und Spider der Suchmaschinen diese Seiten in ihre Listen aufnehmen. Dann würde Gott und die Welt den Webspace meines Servers voll müllen. Wenn ich also den Link zu diesen Seiten auf eine nicht versteckte Seite lege, dann, tja, dann könnte ich jegliche Vorsicht fahren lassen. Mir würde schon reichen, wenn ein Formular eine ganz bestimmte Eingabe abfragt ("sesam öffne dich") und wenn die Antwort richtig ist, dann zur Registrierungsseite umschaltet. Oder nur dann den Link zur Registrierungsseite anzeigt.
In jedem Fall darf der Link nicht im html der Seite enthalten sein, auf der man das "sesam öffne dich" eingeben muss. Dieser russische Roboter könnte sonst dem Link folgen.
Ich habe früher mal html-Formulare selbst gecodet und eine vom Inhalt der Eingabe abhängige Verzweigung in die Auswertung gehabt. Das ist aber erstens schon so lange her, das ich alles wieder vergessen habe und zweitens stand da das Linkziel offen im html-code. Ich wüste auch nicht, wie so was im CMSimple-Content enthalten sein könnte. Der Editor (im html-Modus) schmeißt PHP-Code bei der Speicherung aus dem Code raus. Wegen meines sehr schlechten Gedächtnisses (wegen Corona zu wenig Bewegung) schaffe ich keine komplexe PHP-Entwicklung mehr. Was ja auch der Grund ist, warum ich Mitentwickler interessieren möchte. Tata hat keine Lust mehr daran weiter zu arbeiten.
Ich bin > 69 und lerne fast jeden Tag was Neues. Dafür vergesse ich was Anderes.
Der Trick ist, sich nicht darüber aufzuregen und morgen zu lernen, was man vorgestern vergessen hat. ;)
https://lembach-cmsimple.de

mhz
Posts: 676
Joined: Tue Jun 25, 2013 8:46 pm
Location: Heusenstamm, Hessen
Contact:

Re: Register_XH

Post by mhz » Wed Mar 10, 2021 7:21 pm

Ich habe mal ein wenig in meinen uralt-CMSimple-Installationen gesucht ... mir ergeht es wie Caravaner.
Es ist bestimmt nicht so elegant, aber vielleicht hilft das fürs Erste; wie im anderen Threat geschrieben: Ich habe keine Ahnung von Register_XH, sollte aber ähnlich funktionieren.
Die Beschreibung meiner beiden Realisierungen mit ist hier zu finden:
https://cmsimplexh.de/?Form-Action-Button
Last edited by mhz on Thu Mar 11, 2021 10:44 pm, edited 2 times in total.
Michael Zajusch (mhz)-- Mein Tutorial für CMSimple_XH. Früher

lck
Posts: 2955
Joined: Wed Mar 23, 2011 11:43 am
Contact:

Re: Register_XH

Post by lck » Wed Mar 10, 2021 7:33 pm

Caravaner wrote:
Wed Mar 10, 2021 3:18 pm
Mir würde schon reichen, wenn ein Formular eine ganz bestimmte Eingabe abfragt ("sesam öffne dich") und wenn die Antwort richtig ist, dann zur Registrierungsseite umschaltet. Oder nur dann den Link zur Registrierungsseite anzeigt.
In jedem Fall darf der Link nicht im html der Seite enthalten sein, auf der man das "sesam öffne dich" eingeben muss.
Möglichkeit 1
Siehe hier viewtopic.php?t=8651#p47445. Die Register-Seite als versteckte Seite anlegen.

Möglichkeit 2
Du "missbrauchst" Cristophs Plugin Advancedform_XH dafür.
advancedform/help/help_de.htm wrote:Nach dem erfolgreichen Absenden des Formulars wird eine E-Mail an die Empfänger (An, CC und BCC), die im Formular-Editor angegeben wurden, versendet. Dann wird die versendete Information im Browser der Besuchers als Bestätigung angezeigt, oder, falls eine Dank-Seite angegeben wurde, werden die Besucher dorthin weiter geleitet, und eine Bestätigungs-E-Mail wird an sie versendet. Die Weiterleitung auf die Dank-Seite mit Bestätigungs-E-Mail ist nur möglich, wenn ein erforderliches Feld des Typs Absender (E-Mail) im Formular existiert, und Mail → Confirmation in der Konfiguration aktiviert ist.
ToDo:
1. Konfiguration von Advancedform dementsprechend einstellen

2. Simples Formular erstellen oder Beispielformular im Backend von Advancedform kopieren. Notwendig hier sind nur Captcha aktiviert, die Dank-Seite (=Register-Seite) und ein Feld mit Absender E-Mail (Erforderlich anhaken!)

3. Weiterleitungsseite mit dem Formularaufruf anlegen, mit kurzer Anleitung für den User. Als E-Mail-Adresse können z.B. alle user@example.com verwenden

4. Register-Seite im Pagemanager oder Page-Data als versteckt aktivieren

*Nachtrag zu Möglichkeit 1
Der Code müsste nun natürlich in die cmsimple/userfuncs.php
„Bevor du den Pfeil der Wahrheit abschießt, tauche die Spitze in Honig!“   👉 Ludwig's XH-Templates for MultiPage & OnePage

Caravaner
Posts: 112
Joined: Sat Oct 05, 2019 5:20 pm
Location: Wadgassen (Saarland)
Contact:

Re: Register_XH

Post by Caravaner » Mon Mar 15, 2021 8:06 pm

lck wrote:
Wed Mar 10, 2021 7:33 pm
ToDo:
1. Konfiguration von Advancedform dementsprechend einstellen

2. Simples Formular erstellen oder Beispielformular im Backend von Advancedform kopieren. Notwendig hier sind nur Captcha aktiviert, die Dank-Seite (=Register-Seite) und ein Feld mit Absender E-Mail (Erforderlich anhaken!)

3. Weiterleitungsseite mit dem Formularaufruf anlegen, mit kurzer Anleitung für den User. Als E-Mail-Adresse können z.B. alle user@example.com verwenden

4. Register-Seite im Pagemanager oder Page-Data als versteckt aktivieren

*Nachtrag zu Möglichkeit 1
Der Code müsste nun natürlich in die cmsimple/userfuncs.php
Sorry wegen der langen Antwortzeit. War für einen Freund bei ihn zu Hause mehrere Tage als Handwerker im Einsatz.

Ich hab das mal so verstanden:
Ein E-Mail-Formular erstellen, das 1. eine Captcha-Eingabe hat und 2. eine Eingangsbestätigungsseite = Danke-Seite hat.
Auf der Seite, auf der sich bereits registrierte User anmelden, einen Link anzeigen für die, die sich registrieren möchten. Dieser Link zeigt auf das vor-erwähnte E-Mail-Formular.
Die Eingangsbestätigungsseite = Danke-Seite ist das eigentliche Registrierungsformular, auf dem sich neue Besucher registrieren können. Diese Seite wird versteckt.
Soweit richtig?
Ich hab das nachgebaut. Das Problem dabei ist, sobald die Danke-Seite versteckt wird, wird sie nicht mehr als Danke-Seite angezeigt. Zur Anzeige kommt lediglich das E-Mail-Formular mit der Mitteilung:
Vielen Dank für das Ausfüllen des Formulars. Die folgenden Informationen wurden verschickt:
Ich bin jetzt am Überlegen, ob ich hier einen Autoresponder einsetze.
Wenn ich eine Mail-Adresse alleine für diesen Zweck einrichte und die als Zieladresse des Formulars eintrage und dann einen Autoresponder einrichte, der die Adresse des Registrierungsformulars enthält? Das sollte doch eine, zugegebenermaßen umständliche, jedoch ohne Programmierung zu realisierende Captcha geschützte Registrierung realisieren.
Um zu testen, ob das Captcha eine Sperre für diesen Robot darstellt, habe ich erst mal nur das E-Mail-Formular realisiert, das den Registrierungswunsch an meine E-Mail-Adresse schickt.
Wenn jetzt der Robot nicht mehr in Erscheinung tritt, dann realisiere ich die Sache mit dem Autoresponder.
Ich bin > 69 und lerne fast jeden Tag was Neues. Dafür vergesse ich was Anderes.
Der Trick ist, sich nicht darüber aufzuregen und morgen zu lernen, was man vorgestern vergessen hat. ;)
https://lembach-cmsimple.de

Caravaner
Posts: 112
Joined: Sat Oct 05, 2019 5:20 pm
Location: Wadgassen (Saarland)
Contact:

Re: Register_XH

Post by Caravaner » Mon Mar 15, 2021 8:32 pm

mhz wrote:
Wed Mar 10, 2021 7:21 pm
Ich habe mal ein wenig in meinen uralt-CMSimple-Installationen gesucht ... mir ergeht es wie Caravaner.
Es ist bestimmt nicht so elegant, aber vielleicht hilft das fürs Erste; wie im anderen Threat geschrieben: Ich habe keine Ahnung von Register_XH, sollte aber ähnlich funktionieren.
Die Beschreibung meiner beiden Realisierungen mit ist hier zu finden:
https://cmsimplexh.de/?Form-Action-Button
Ich habe mir Deine Seite angesehen und mir scheint in beiden Beispielen, dass im HTML-Code die URL der eigentlich zu schützenden Seite im Klartext erscheint. Soweit mir bekannt ist, parsen diese Roboter den Quellcode der Webseiten. Somit dürfte er auch über diese Form der URL (form action="./?Test-1/Forms-Aufruf") stolpern und auswerten können.

Eigentlich würde ich gerne eine Weiterleitungsseite erstellen, die eine Captcha-Abfrage enthält und erst bei gelöstem Captcha weiterleitet (ohne dass die Weiterleitungs-URL im HTML-Code erscheint). Ich habe jedoch kein Plugin gefunden (evtl. schlecht gesucht / was nicht verstanden), das dieses Captcha zur Verfügung stellt, ohne den Mechanismus von Google zu verwenden. Und Google kommt mir nicht in den Code meiner Seite. Dann wird die Datenschutz-Erklärung viel zu kompliziert.
Außerdem habe ich keine Idee, wie ich die Weiterleitungs-URL aus dem Code der Captcha-Geschützten Seite heraus halten soll.

Deshalb (weil ich keine andere Idee habe) verfolge ich, solange mir keine bessere Lösung gezeigt wird, erst einmal den Ansatz mit dem Umweg über ein Catcha-Geschütztes E-Mail-Formular.
Ich bin > 69 und lerne fast jeden Tag was Neues. Dafür vergesse ich was Anderes.
Der Trick ist, sich nicht darüber aufzuregen und morgen zu lernen, was man vorgestern vergessen hat. ;)
https://lembach-cmsimple.de

cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: Register_XH

Post by cmb » Tue Mar 16, 2021 12:23 am

Caravaner wrote:
Mon Mar 15, 2021 8:06 pm
Ich hab das nachgebaut. Das Problem dabei ist, sobald die Danke-Seite versteckt wird, wird sie nicht mehr als Danke-Seite angezeigt. Zur Anzeige kommt lediglich das E-Mail-Formular mit der Mitteilung:
Vielen Dank für das Ausfüllen des Formulars. Die folgenden Informationen wurden verschickt:
Könnte ein Bug in Advancedform_XH sein, aber möglicherweise einfach das Resultat der fürchterlich umständlichen Danke-Seite-Logik.
Caravaner wrote:
Mon Mar 15, 2021 8:06 pm
Das sollte doch eine, zugegebenermaßen umständliche, jedoch ohne Programmierung zu realisierende Captcha geschützte Registrierung realisieren.
Eben, "zugegebenermaßen umständliche". Vielleicht einfacher mit folgendem Patch für Register_XH 1.6 und Cryptographp_XH 1.0beta6:

Code: Select all

 classes/RegistrationController.php | 9 +++++++++
 views/registerform.php             | 3 +++
 2 files changed, 12 insertions(+)

diff --git a/classes/RegistrationController.php b/classes/RegistrationController.php
index 6891360..1d4ea1d 100644
--- a/classes/RegistrationController.php
+++ b/classes/RegistrationController.php
@@ -48,6 +48,12 @@ class RegistrationController extends Controller
             $errors[] = $this->lang['err_email_exists'];
         }
 
+        global $pth;
+        include_once "{$pth['folder']['plugins']}cryptographp/captcha.php";
+        if (!cryptographp_captcha_check()) {
+            $errors[] = 'Bitte korrekten CAPTCHA code eingeben.';
+        }
+
         // generate a nonce for the user activation
         $status = bin2hex($this->hasher->get_random_bytes(16));
         $userArray = registerAddUser(
@@ -159,6 +165,9 @@ class RegistrationController extends Controller
         $view->password1 = $password1;
         $view->password2 = $password2;
         $view->email = $email;
+        global $pth;
+        include_once "{$pth['folder']['plugins']}cryptographp/captcha.php";
+        $view->captcha = cryptographp_captcha_display();
         return (string) $view;
     }
 }
diff --git a/views/registerform.php b/views/registerform.php
index e9786d4..180e5ee 100644
--- a/views/registerform.php
+++ b/views/registerform.php
@@ -24,6 +24,9 @@
                 <td><?=$this->text('email')?></td>
                 <td colspan="2"><input class="text" name="email" type="text" size="35" value="<?=$this->email()?>"></td>
             </tr>
+            <tr>
+                <td colspan="3"><?=$this->captcha?></td>
+            </tr>
             <tr>
                 <td colspan="3"><input class="submit" type="submit" value="<?=$this->text('register')?>"></td>
             </tr>
Wer mit einem diff nichts anfangen kann, kann das natürlich auch händisch tun; einfach die Zeilen mit einem einzigen Pluszeichen am Anfang an der passenden Stelle einfügen (das Pluszeichen dabei aber weglassen).

Beim Testen wurden mir der eigentliche CAPTCHA-Code im Bild nicht angezeigt; per Audio-CAPTCHA ging es aber. Na ja, wenn andere das Problem haben, dann finde ich wohl etwas Zeit es mir näher anzuschauen. Aber es ist vielleicht wichtiger mal Updates für beide Plugins freizugeben…
Christoph M. Becker – Plugins for CMSimple_XH

Caravaner
Posts: 112
Joined: Sat Oct 05, 2019 5:20 pm
Location: Wadgassen (Saarland)
Contact:

Re: Register_XH

Post by Caravaner » Tue Mar 16, 2021 10:06 am

cmb wrote:
Tue Mar 16, 2021 12:23 am
Beim Testen wurden mir der eigentliche CAPTCHA-Code im Bild nicht angezeigt; per Audio-CAPTCHA ging es aber.
Wow, ich bin geplättet! Vielen Dank, das ist genau das, was ich mir gewünscht habe!!!!!
Habe es gerade mal schnell und schmutzig im Testserver (offline) gepatcht: Bildchen werden angezeigt, Audio wird ausgegeben.
Heute Nachmittag habe ich Zeit es in der echten Website einzubauen und zu testen. Werde berichten.
17:06 ------------------------------
Edit: Fehlermeldung entfernt - :oops: Da ist mir doch ein kapitaler Fehler passiert, habe vergessen das Plugin cryptographp hochzuladen.

20:10 ---
Es funktioniert hervorragend!
Ich mache jetzt die Seite fertig und stelle dann den Link zum Bericht hier ein.
Ich bin > 69 und lerne fast jeden Tag was Neues. Dafür vergesse ich was Anderes.
Der Trick ist, sich nicht darüber aufzuregen und morgen zu lernen, was man vorgestern vergessen hat. ;)
https://lembach-cmsimple.de

Caravaner
Posts: 112
Joined: Sat Oct 05, 2019 5:20 pm
Location: Wadgassen (Saarland)
Contact:

Register_XH mit Patch für Captcha von Cryptographp_XH

Post by Caravaner » Tue Mar 16, 2021 11:26 pm

Vielen Dank, Christoph!
Durch Deinen Patch habe ich jetzt auf meiner Seite ...kr.de/?Plugin-Register_XH-mit-Catcha
ein Registrierungsformular mit eingebautem Captcha: http://cmsimple.lembach-kr.de/?Registrierung
Ich hoffe, dass damit dem russischen Bot, der sich immer wieder bei mir registriert hat, ein Riegel vorgeschoben ist.
Wer sich testweise registrieren möchte, wird gebeten sein Benutzerkonto nach dem Test wieder zu löschen:
Sich anmelden und dann über http://cmsimple.lembach-kr.de/?Benutzereinstellungen den Benutzer wieder löschen.
Ich bin > 69 und lerne fast jeden Tag was Neues. Dafür vergesse ich was Anderes.
Der Trick ist, sich nicht darüber aufzuregen und morgen zu lernen, was man vorgestern vergessen hat. ;)
https://lembach-cmsimple.de

cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: Register_XH

Post by cmb » Wed Mar 17, 2021 10:13 pm

Freut mich, dass es soweit funktioniert! Bitte gib Bescheid, falls dieser oder ein anderer Bot das CAPTCHA umgehen. Da kann schon noch einiges nachgebessert werden.
Christoph M. Becker – Plugins for CMSimple_XH

Caravaner
Posts: 112
Joined: Sat Oct 05, 2019 5:20 pm
Location: Wadgassen (Saarland)
Contact:

Re: Register_XH Patch mit Automatik

Post by Caravaner » Fri Mar 19, 2021 1:36 pm

cmb wrote:
Tue Mar 16, 2021 12:23 am
Vielleicht einfacher mit folgendem Patch für Register_XH 1.6 und Cryptographp_XH 1.0beta6:
Ich habe mal getestet, ob man den Patch so weit ändern kann, dass das Captcha automatisch eingeblendet wird, wenn das Plugin cryptographp installiert ist. Nach meinen Tests scheint das zu funktionieren:

Code: Select all

Datei plugins/register/classes/RegistrationController.php
Listing beginnt mit Zeile 47, ab Zeile 51  die Zeilen mit vorangestelltem + einfügen

        if (registerSearchUserArray($userArray, 'email', $email) !== false) {
             $errors[] = $this->lang['err_email_exists'];
         }
 
+        global $pth;
+	 if (is_readable($pth['folder']['plugins'].'cryptographp/captcha.php'))
+	 {
+      	include_once "{$pth['folder']['plugins']}cryptographp/captcha.php";
+        	if (!cryptographp_captcha_check()) {
+        		$errors[] = 'Bitte korrekten CAPTCHA code eingeben.';
+        	}
+	 }
         // generate a nonce for the user activation
         $status = bin2hex($this->hasher->get_random_bytes(16));


Listing beginnt mit der ursprünglichen Zeile 159 (=neue Zeile 168), ab Zeile ursprünglich 162 (=neue Zeile 171)  die Zeilen mit vorangestelltem + einfügen

         $view->password1 = $password1;
         $view->password2 = $password2;
         $view->email = $email;
+	  global $pth;
+	  if (is_readable($pth['folder']['plugins'].'cryptographp/captcha.php'))
+	  {
+        	include_once "{$pth['folder']['plugins']}cryptographp/captcha.php";
+         	$view->captcha = cryptographp_captcha_display();
+	  }
         return (string) $view;
________________________________________
Datei: plugins/register/views/registerform.php
Listing beginnt mit Zeile 24, ab Zeile 27 die Zeilen mit vorangestelltem + einfügen

                 <td><?=$this->text('email')?></td>
                 <td colspan="2"><input class="text" name="email" type="text" size="35" value="<?=$this->email()?>"></td>
              </tr>
+	      <?php if (is_readable($pth['folder']['plugins'].'cryptographp/captcha.php')):?>
+		<tr>
+		      <td>Captcha</td>
+		      <td colspan="2">&nbsp;<?=$this->captcha?></td>
+		</tr>
+	      <?php endif;?>  
             <tr>
                 <td colspan="3"><input class="submit" type="submit" value="<?=$this->text('register')?>"></td>
             </tr>
Da jetzt der Code funktioniert, egal ob cryptographp installiert ist oder nicht, könntest Du ein Update für Register_XH daraus machen.

Bis jetzt (unter Verwendung des ersten Patch) ist der russische Bot nicht wieder in Erscheinung getreten.
Ich bin > 69 und lerne fast jeden Tag was Neues. Dafür vergesse ich was Anderes.
Der Trick ist, sich nicht darüber aufzuregen und morgen zu lernen, was man vorgestern vergessen hat. ;)
https://lembach-cmsimple.de

Post Reply