IPB

Willkommen, Gast ( Anmelden | Registrierung )

4 Seiten V  < 1 2 3 4 >  
Reply to this topicStart new topic
> Die Robots und das Kontaktformular, Wie wehren?
Conny
Beitrag 08.01.2008 - 20:58
Beitrag #21


Kommt Zeit, kommt Rat, kommt Conrad!
Gruppensymbol

Gruppe: Mods
Beiträge: 1.169
Mitglied seit: 21.11.2001
Wohnort: Altenkirchen, Westerwald
Mitglieds-Nr.: 42



So, ich glaube ich habe eine elegante Lösung gefunden.

Auf der Kontakt-Seite bleibt das Kontaktformular zunächst unsichtbar.
Lediglich die Captcha-Code ist sichtbar mit der Aufforderung das Kontaktformular mittels Code frei zu schalten.

Wird Keine oder eine falsche Code eingegeben, passiert nix, lediglich die Code wird neu generiert.
Ist die Code Richtig, wird per include das Formular zum ausfüllen implementiert.

Beim Absenden des Formulars folgt die gewohnte Prüfung ob die entsprechende Felder ausgefüllt wurden.
Ist alles richtig, wird das Formular gesendet. Bei Fehlerhaftes oder unvollständiges ausfüllen gibt es den entsprechenden Fehlerhinweis.

Ich Danke Euch herzlich für die Denkanstösse icon13.gif

cu
Conny
Go to the top of the page
 
+Quote Post
Conny
Beitrag 08.01.2008 - 21:34
Beitrag #22


Kommt Zeit, kommt Rat, kommt Conrad!
Gruppensymbol

Gruppe: Mods
Beiträge: 1.169
Mitglied seit: 21.11.2001
Wohnort: Altenkirchen, Westerwald
Mitglieds-Nr.: 42



Hallo Thomas,

Nun denn, das Ergebnis ist OnLine !

ZITAT(Thomas @ 08.01.2008 - 19:17) *
Hmmm - zurück über JS ist zwar ganz nett, aber bei daktiviertem JS blöd, da muss man dann erstmal selber drauf kommen und den Zurück-Button des Browsers anklicken. ...


Ja, ist mit Sicherheit nicht die eleganteste Lösung, jetzt wo das Formular erst im zweiten Schritt aufgerufen wird sehe ich aber überhaupt keine Möglichkeit mehr das Formular direkt auf zu rufen. Verlinkt man die Seite direkt wäre ja zunächst wieder eine Code eingabe fällig und das nervt wahrscheinlich auch, vor allem weil dann das Formular leer zurück gegeben wird und ALLES noch mal gemacht werden muss.
So wie es jetzt gestaltet ist (zurück mit JS), ist wenigstens alles noch da und habe ich die Möglichkeit 'das fehlende' aus zu bessern. Kurz: so ist es wohl das kleinere Übel rolleyes.gif

ZITAT(Thomas @ 08.01.2008 - 19:17) *
...Dein Nachrichtenfeld ist übrigens mit einem Leerzeichen vorbelegt ( als Inhalt im TEXTAREA-Tag) - ist das Absicht?

Ja, ist/war Absicht. Aber nur für mich wegen Übersichtlichkeit im Queltext als das alles entstanden ist. Heute ist es eigentlich egal.

cu
Conny
Go to the top of the page
 
+Quote Post
Thomas
Beitrag 09.01.2008 - 8:37
Beitrag #23


Nachschlagewerk des Orakels
Gruppensymbol

Gruppe: Mods
Beiträge: 955
Mitglied seit: 29.08.2006
Wohnort: Frankfurt am Main
Mitglieds-Nr.: 6.217



Irgendwie hatte ich mir das komplett anders vorgestellt - und zwar das Captcha-Feld als eines deiner Eingabefelder, am besten direkt vor dem Absendebutton. Man füllt dann das Formular aus, gibt als letztes noch den Captcha-Code ein und sendet dann die Daten. Klar, wenn dann ein Fehler in den Daten war, muss man nochmal einen neuen Captcha-Code eingeben, aber das ist meines Erachtens Standard (siehe z. B. die Registrierung in diversen Foren). So wie du das machst (man muss immer zweimal klicken) habe ich es bisher noch nicht gesehen - aber sicher geht es auch so wink.gif.

Was mir beim Testen aufgefallen ist: Wenn du das Formular so aufrufst:
http://www.reitschule-beck.de/a-kontakt.php?do=verify
erscheinen ein paar Fehlermeldungen.

Das solltest du eventuell noch abschalten, da damit unnötige Informationen nach außen gegeben werden. Am Besten fopen() mit @ davor aufrufen und vor der Weiterverarbeitung prüfen, ob ein gültiges Ergebnis zurückgeliefert wurde.

Außerdem kann dein Formular immer noch ganz einfach kompromittiert werden, ich schick dir mal ne PM sad.gif.

Der Beitrag wurde von Thomas bearbeitet: 09.01.2008 - 8:54
Bearbeitungsgrund: Fehlermeldungen gelöscht (macht ja keinen Sinn, wenn ich sie hier veröffentliche, obwohl sie eigentlich nicht veröffentlicht werden sollten ;))
Go to the top of the page
 
+Quote Post
Conny
Beitrag 09.01.2008 - 10:01
Beitrag #24


Kommt Zeit, kommt Rat, kommt Conrad!
Gruppensymbol

Gruppe: Mods
Beiträge: 1.169
Mitglied seit: 21.11.2001
Wohnort: Altenkirchen, Westerwald
Mitglieds-Nr.: 42



Moin Thomas,
vielen Dank für die Testreihe!
Die Fehlermeldungen beim Aufrufen des Formulars sollten nun behoben sein.

Deine PM habe ich erhalten, werde mich auch da noch mal drann setzen, die Überprüfung (Prüfmethode) zu verbessern.
Es ist halt wirklich sehr einfach gestrickt, bin halt nicht so ein Held in Sachen PHP...
Wahrscheinlich werde ich für die Zukunft mir wohl ein moderneres (fertiges) Script suchen und einpflegen.
Denn, man does what man can and what man not can, that lässt man ... wink.gif

cu
Conny
Go to the top of the page
 
+Quote Post
Thomas
Beitrag 09.01.2008 - 11:03
Beitrag #25


Nachschlagewerk des Orakels
Gruppensymbol

Gruppe: Mods
Beiträge: 955
Mitglied seit: 29.08.2006
Wohnort: Frankfurt am Main
Mitglieds-Nr.: 6.217



ZITAT(Conny @ 09.01.2008 - 10:01) *
Die Fehlermeldungen beim Aufrufen des Formulars sollten nun behoben sein.

Nö - wenn ich oben auf den Link klicke, krieg ich immer noch die Fehlermeldungen.

Tipp für die Überprüfung: Einfach statt z. B.
QUELLTEXT
if ($name=='')
diesen Code
QUELLTEXT
if ($_POST['name']=='')
verwenden.

Oder, noch einfacher, zu Beginn des Prüf-Skriptes
QUELLTEXT
$name = $_POST['name'];
dann kann der Rest bleiben wie er ist.
Go to the top of the page
 
+Quote Post
Conny
Beitrag 10.01.2008 - 8:39
Beitrag #26


Kommt Zeit, kommt Rat, kommt Conrad!
Gruppensymbol

Gruppe: Mods
Beiträge: 1.169
Mitglied seit: 21.11.2001
Wohnort: Altenkirchen, Westerwald
Mitglieds-Nr.: 42



Moin Thomas,

HTML
if ($_POST['name']=='')

habe ich nun eingefügt, ursprünglich hatte ich da nur so'ne art Schleife
HTML
if ($name == "" || $Strasse == "" || $PLZ == "" || $Ort == "" || ...


Hat aber am Ende denn doch nix gebracht; fragt man mit kontakt.php?do=verify ab, gibt es eine Fehlermeldung.
Nun ist auch diese Art des abfragens auch eigentlich nicht vorgesehen; also frage ich mich, wie problematisch ist denn überhaupt diese fehlermeldungs Ausgabe?
Könnte man mit diesen Daten (Pfad angaben) böses anfangen?

cu
Conny
Go to the top of the page
 
+Quote Post
Thomas
Beitrag 10.01.2008 - 9:21
Beitrag #27


Nachschlagewerk des Orakels
Gruppensymbol

Gruppe: Mods
Beiträge: 955
Mitglied seit: 29.08.2006
Wohnort: Frankfurt am Main
Mitglieds-Nr.: 6.217



ZITAT(Conny @ 10.01.2008 - 8:39) *
HTML
if ($name == "" || $Strasse == "" || $PLZ == "" || $Ort == "" || ...
woraus dann
HTML
if ($_POST['name'] == "" || $_POST['Strasse'] == "" || $_POST['PLZ'] == "" || $_POST['Ort'] == "" || ...
wurde? Hast du mit dem Link aus meiner PM getestet, ob das jetzt nicht mehr geht?

ZITAT(Conny @ 10.01.2008 - 8:39) *
Hat aber am Ende denn doch nix gebracht; fragt man mit kontakt.php?do=verify ab, gibt es eine Fehlermeldung.
Das hat auch mit der Fehlermeldung nichts zu tun. Die Verwendung von $_POST verhindert, dass man dir mit solchen Links wie aus meiner PM ausgefüllte Formulare ohne Captcha-Prüfung schicken kann.

ZITAT(Conny @ 10.01.2008 - 8:39) *
wie problematisch ist denn überhaupt diese fehlermeldungs Ausgabe?
Könnte man mit diesen Daten (Pfad angaben) böses anfangen?
Zumindest erfährt man einiges - und wie du sicher weißt, können böse Menschen mit allem etwas Böses anfangen wink.gif. Wenn du magst, kannst du mir die a-kontakt.php schicken, dann guck ich schnell mal drüber, am besten per E-Mail, hast du die Adresse?
Go to the top of the page
 
+Quote Post
harlequin
Beitrag 10.01.2008 - 9:48
Beitrag #28


DELETE FROM users WHERE search_count < 1
Gruppensymbol

Gruppe: Admin
Beiträge: 314
Mitglied seit: 15.07.1976
Wohnort: Osnabrück
Mitglieds-Nr.: 2



moin!

ZITAT(Thomas @ 10.01.2008 - 9:21) *
ZITAT(Conny @ 10.01.2008 - 8:39) *
wie problematisch ist denn überhaupt diese fehlermeldungs Ausgabe?
Könnte man mit diesen Daten (Pfad angaben) böses anfangen?
Zumindest erfährt man einiges - und wie du sicher weißt, können böse Menschen mit allem etwas Böses anfangen wink.gif. Wenn du magst, kannst du mir die a-kontakt.php schicken, dann guck ich schnell mal drüber, am besten per E-Mail, hast du die Adresse?


Dies ist korrekt (obwohl ich noch nicht alle Dinge durchgegangen bin, ob sie zu Bösen taugen). smile.gif
Ein anderer Aspekt ist, wenn eine Website mal umzieht, oder der Server aktualisiert wird, auf der sie liegt kann es sehr gut sein, dass beim PHP REGISTER_GLOBALS abgeschaltet wird - was ich nur jedem empfehlen kann.

Ist es angeschaltet gräbt PHP der Reihe nach (die in der PHP Config geändert werden kann) die $_GET, $_POST, $_REQUEST und so weiter Variablen ab. Beim ersten Treffer wird der Inhalt der entsprechenden Variable übernommen. Durch die Verwendung der expliziten Herkunft, also $_POST oder $_GET hat man als Seitenbetreiber/Coder etwas mehr Kontrolle und Sicherheit.
Zum Teil gehe ich sogar soweit, dass ich andere Herkunftsmöglichkeiten komplett ausschließe - etwa bei einem Formular ein:
QUELLTEXT
<?
// Get gibts nicht, geh weg!
unset($_GET);

/*
Vars auswerten
*/
?>


Man sollte bei Dingen, die in die Datenbank schreiben generell die Variablen, die durch POST oder GET daherkommen noch entsprechend überprüfen und escapen, man glaubt garnicht, wie schnell man einem unglücklichen (aber funktionierendem) INSERT ein SELECT anhängen kann... wink.gif

Aber das sollten wir wohl mal in einem anderen Thread/Tutorial/Blog behandeln.... smile.gif

have fun!
Lars
Go to the top of the page
 
+Quote Post
Thomas
Beitrag 10.01.2008 - 10:13
Beitrag #29


Nachschlagewerk des Orakels
Gruppensymbol

Gruppe: Mods
Beiträge: 955
Mitglied seit: 29.08.2006
Wohnort: Frankfurt am Main
Mitglieds-Nr.: 6.217



ZITAT(harlequin @ 10.01.2008 - 9:48) *
QUELLTEXT
<?
// Get gibts nicht, geh weg!
unset($_GET);
?>

Öh - und dann? Hat doch keinen Einfluss auf $GLOBALS bzw. die bereits gesetzten Variablen, d. h. lediglich, wenn du dann weiter unten entgegen deinem Vorsatz doch direkt auf $_GET zugreifst, bekommst du nichts. Oder übersehe bzw. missverstehe ich da was unsure.gif?
Go to the top of the page
 
+Quote Post
harlequin
Beitrag 10.01.2008 - 11:31
Beitrag #30


DELETE FROM users WHERE search_count < 1
Gruppensymbol

Gruppe: Admin
Beiträge: 314
Mitglied seit: 15.07.1976
Wohnort: Osnabrück
Mitglieds-Nr.: 2



ZITAT(Thomas @ 10.01.2008 - 10:13) *
ZITAT(harlequin @ 10.01.2008 - 9:48) *
QUELLTEXT
<?
// Get gibts nicht, geh weg!
unset($_GET);
?>

Öh - und dann? Hat doch keinen Einfluss auf $GLOBALS bzw. die bereits gesetzten Variablen, d. h. lediglich, wenn du dann weiter unten entgegen deinem Vorsatz doch direkt auf $_GET zugreifst, bekommst du nichts. Oder übersehe bzw. missverstehe ich da was unsure.gif?


Es ist Paranoia - ich traue mir dahingehend nicht wirklich... smile.gif Soll heissen, auch auf einem System, wo die Globals an sind möchte ich wirklich exakt auf entweder _POST oder _GET zugreifen, nicht PHP danach suchen lassen, wo denn nun ein Wert drinsteht.
Da ich aber hin und wieder zu Flüchtigkeits- und Faulheitsfehlern neige setze ich mir oben im Skript (zumindest in diesem Beispiel) selbst eine Grenze.
Das Beispiel ist allerdings auch ziemlich plakativ, muss ich zugeben. Aber persönlich finde ich den Einsatz von _GET wirklich grenzwertig.... smile.gif

Aber wie gesagt, es ist bei mir zum gewissen Teil auch Paranoia... smile.gif

have fun!
Go to the top of the page
 
+Quote Post
Google Bot
Beitrag
Beitrag #


Google Ads









Go to the top of the page
 
Quote Post

4 Seiten V  < 1 2 3 4 >
Reply to this topicStart new topic
1 Besucher lesen dieses Thema (Gäste: 1 | Anonyme Besucher: 0)
0 Mitglieder:

 



RSS Vereinfachte Darstellung Aktuelles Datum: 19.06.2024 - 6:49

taschenkalender
expertise-panel IPS Driver Error

IPS Driver Error

There appears to be an error with the database.
You can try to refresh the page by clicking here