Joomla 5 Notice

We are pleased to announce that as of January 29, 2024, all of our Joomla extensions are compatible with Joomla 5.

For all who are still updateing from Joomla 3 to Joomla 4: Joomla 4 Migration instructions are available here:

There is now a separate Documentation for Visforms for Joomla 4 and for Visforms for Joomla 5!

Forum

Visforms Subscription user can ask questions in our forum. Please log in with the relevant user first.
Everybody can access the forum for reading.

Please only ask 1 question per topic.

Important information for almost every question:
V1: Which Visforms version is running?
V2: Which Joomla version is running?
V3: Which PHP version is running?

VisForms Listbox und Javascript

More
3 weeks 3 days ago - 3 weeks 3 days ago #11087 by R.Ossig
VisForms Listbox und Javascript was created by R.Ossig
Visforms Version 5.2.0, Subscription Version 5.2.0
Joomla Version 5.2.3
PHP Version 8.2.12

Hallo zusammen,
ich arbeite an einem Formular, in dem ein Listboxen-Feld über ein JavaScript mit Optionen gefüllt werden. Dieses Listbox-Feld selbst beinhaltet keinerlei Werte.

JS-Auszug:
$('.JahresListe').append(new Option(Jahr, Jahr));

Diese Werte aus der Listbox werden beim absenden des Formulars aber als "ungültiger Wert" erkannt und die Verarbeitung des Formulars wird abgebrochen. Lässt sich diese Überprüfung in irgendeiner Form für das Feld umgehen?

Schöne Grüße.
 
Last edit: 3 weeks 3 days ago by R.Ossig.

More
3 weeks 3 days ago #11089 by Administrator IV
Replied by Administrator IV on topic VisForms Listbox und Javascript
Hallo R.Ossig,

vielen Dank für die Versions-Informationen und die interessante Frage.

Visforms legt wirklich einen großen Wert auf Sicherheit, was sich an zahlreichen Stellen deutlich zeigt.
Die Validierungen von Benutzereingaben ist ein Teil davon.

Diese Validierung erfolgt aus Sicherheitsgründen zwei Mal und kann per Design nicht umgangen werden.

1. Auf  dem Client:
docs.joomla-5.visforms.vi-solutions.de/d...nput/#auf-dem-client
2. Auf dem Server:
docs.joomla-5.visforms.vi-solutions.de/d...nput/#auf-dem-server

Damit ist sichergestellt, dass allein beabsichtigte Werte durch das Abschicken des Formulars übermittelt werden können.
'Beabsichtig' meint hier beabsichtigt in der Administration zum Zeitpunkt der Formular-Konfiguration und Feld-Konfiguration.

Auch bei den dynamischen SQL-Anwendung, etwa für eine SQL-Listbox, weiß das Backend um das Aussehen der aktuellen SQL-Statements und kann die übertragenen Werte überprüfen.
SQL-Anwendungen:
docs.joomla-5.visforms.vi-solutions.de/d...es/sql/introduction/

Auch hier wird zusätzlich zur Validität der übertragenen Werte intensiv sichergestellt, dass etwa eine SQL-Injektion verhindert wird.
Hohe Sicherheit:
docs.joomla-5.visforms.vi-solutions.de/d...ion/#hohe-sicherheit

Alternative 1: SQL-Listbox

Mit einer SQL-Listbox ist es möglich eine SQL-Statement-basierte dynamische Options-Liste zu erzeugen.
Zitat:
Ein Nachladen des Formulars erfolgt, wenn der Benutzer seine Eingabe in einem Trigger-Feld im Formular ändert.
Ein Trigger-Feld ist ein Feld, welches in der Feld-Konfiguration in der Option Bei Änderung von nachladen eingetragen wurde.

Mit einer SQL-Listbox kann die Zusammensetzung der Options-Liste SQL-Statement-basiert beliebig verändert werden.
Aber auch bei einer SQL-Listbox sind dem Backend alle aktuellen validen Options-Werte bekannt und werden überprüft.

Alternative 2: Eine sichere dynamische JavaScript-Lösung:

Sichere dynamische JavaScript-Lösungen erfordern immer eine Miteinbeziehung des Backend, etwa mit AJAX-Aufrufen unter Verwendung von Sicherheitstoken.
Das ist an vielen Stellen in Visforms der Fall und mindert die Sicherheit nicht.

Eine Miteinbeziehung des Backend, etwa mit AJAX-Aufrufen unter Verwendung von Sicherheitstoken ist grundsätzlich individuell möglich.
Eine Möglichkeit für Entwickler gibt es in Form der Erstellung eines 'Visforms Custom-Plugins'.
Die Erstellung eines Custom-Plugins erfordert etwas Erfahrung in der PHP-Entwicklung unter Joomla.
In der Dokumentation wird beschrieben, wie ein 'Visforms Custom-Plugin' erstellt werden kann.

Custom-Plugin Erstellung:
docs.joomla-5.visforms.vi-solutions.de/d...-plugin-development/
Custom-Plugin Event-System:
docs.joomla-5.visforms.vi-solutions.de/d...-plugin-development/
Es gibt ein fertiges komplettes Custom-Plugin mit allen Events und Hilfsfunktionen als Template, das die Installation von Visforms mitbringt:
docs.joomla-5.visforms.vi-solutions.de/d...-plugin-development/

Resümee:

Ein Listbox-Feld allein Client-seitig über ein JavaScript mit Optionen zu befüllen ist extrem unsicher und öffnet Tür und Tor für Hacker.

Liebe Grüße, Ingmar

:idea: I recommend you the new and up-to-date documentation for Joomla 4:
docs.joomla-5.visforms.vi-solutions.de/en/docs/
Most of this also applies retrospectively to Joomla 3.
Please only ask 1 question per topic :-).

:idea: Ich empfehle Dir die neue und aktuelle Dokumentation für Joomla 4:
docs.joomla-5.visforms.vi-solutions.de/docs/
Das meiste gilt rückwirkend auch für Joomla 3.
Bitte immer nur 1 Frage pro Thema stellen :-).

More
3 weeks 3 days ago #11090 by R.Ossig
Replied by R.Ossig on topic VisForms Listbox und Javascript
Hallo Ingmar,
vielen Dank für die schnelle Antwort.
Gibt es denn Beispiele wie man AJAX in Visforms nutzen kann?
Und ist es denn sicher, über JavaScript einfache Textfelder mit einem Wert zu versehen?

Schöne Grüße.

More
3 weeks 3 days ago #11093 by Administrator IV
Replied by Administrator IV on topic VisForms Listbox und Javascript
Hallo R.Ossig,

Zu: Beispiele wie man AJAX in Visforms nutzen kann.

Es gibt Dokumentation und Beispiele für den Umgang mit JavaScript und CSS in den 'Visforms Frontend-Webassets'.
Es gibt Dokumentation und Beispiele für den Umgang mit JavaScript und PHP in einem 'Visforms Custom-Plugin'.
Also alles was spezifisch Visforms ist, also keine Einführungen in JavaScript und PHP.

Die generelle Technik 'AJAX' ist ganz allgemeines JavaScript und korrespondierendes PHP und hat nichts im Speziellen mit Visforms zu tun.
Für Dokumentation und Beispiele muss ich dich leider auf Tutorials im Internet verweisen.


Zu: Ist es sicher, über JavaScript einfache Textfelder mit einem Wert zu versehen.

Nun ja, im Sinne von Sicherheit sehe ich da keinen wesentlichen Unterschied.
Denn du brauchst kein JavaScript, du kannst es ja auch einfach per Hand eintragen.
Es soll ja beliebiger Text eingegeben werden können.

Die Sicherheit besteht in diesem Fall in der Einschränkung der möglichen Texte durch eine konfigurierte benutzerdefinierte Validierung der Eingaben.
Hier auch wieder dann insgesamt 2 Mal, im Frontend und im Backend (gleiches etwa bei den Rechenfeldern).
Validierungen von Benutzereingaben:
docs.joomla-5.visforms.vi-solutions.de/d...validate-user-input/

Bei allen Benutzer-Eingaben, also auch bei einem einfachen Text, stellt Visforms den Schutz sicher vor
- SQL-Injection,
- JavaScript-Injection,
 - CSS-Injection,
- HTML-Injection.

Liebe Grüße, Ingmar

:idea: I recommend you the new and up-to-date documentation for Joomla 4:
docs.joomla-5.visforms.vi-solutions.de/en/docs/
Most of this also applies retrospectively to Joomla 3.
Please only ask 1 question per topic :-).

:idea: Ich empfehle Dir die neue und aktuelle Dokumentation für Joomla 4:
docs.joomla-5.visforms.vi-solutions.de/docs/
Das meiste gilt rückwirkend auch für Joomla 3.
Bitte immer nur 1 Frage pro Thema stellen :-).

Moderators: Administrator AVAdministrator IV
Powered by Kunena Forum