Willkommen, Gast ( Anmelden | Registrierung )
07.01.2008 - 9:09
Beitrag
#1
|
|
|
Kommt Zeit, kommt Rat, kommt Conrad! Gruppe: Mods Beiträge: 1.169 Mitglied seit: 21.11.2001 Wohnort: Altenkirchen, Westerwald Mitglieds-Nr.: 42 |
Moin,
seit einiger Zeit plagen mir unerwünschte automatisch generierte Einträge in meinem Kontaktformular. Die Pflichtfelder werden mit nichtssagenden Floskeln ausgefüllt, der Texteintrag ist gefüllt mit Links zu zweifelhafte Seiten... Wie kann ich sowas verhindern? Weder der Meta Tag: <META NAME="robots" CONTENT="noindex,nofollow"> noch ein eintrag in meinem robots.txt scheint was zu bringen. cu Conny |
|
|
|
![]() |
10.01.2008 - 8:39
Beitrag
#2
|
|
|
Kommt Zeit, kommt Rat, kommt Conrad! 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 |
|
|
|
10.01.2008 - 9:21
Beitrag
#3
|
|
|
Nachschlagewerk des Orakels Gruppe: Mods Beiträge: 955 Mitglied seit: 29.08.2006 Wohnort: Frankfurt am Main Mitglieds-Nr.: 6.217 |
HTML if ($name == "" || $Strasse == "" || $PLZ == "" || $Ort == "" || ... 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?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. wie problematisch ist denn überhaupt diese fehlermeldungs Ausgabe? Zumindest erfährt man einiges - und wie du sicher weißt, können böse Menschen mit allem etwas Böses anfangen Könnte man mit diesen Daten (Pfad angaben) böses anfangen? |
|
|
|
10.01.2008 - 9:48
Beitrag
#4
|
|
|
DELETE FROM users WHERE search_count < 1 Gruppe: Admin Beiträge: 314 Mitglied seit: 15.07.1976 Wohnort: Osnabrück Mitglieds-Nr.: 2 |
moin!
wie problematisch ist denn überhaupt diese fehlermeldungs Ausgabe? Zumindest erfährt man einiges - und wie du sicher weißt, können böse Menschen mit allem etwas Böses anfangen Könnte man mit diesen Daten (Pfad angaben) böses anfangen? Dies ist korrekt (obwohl ich noch nicht alle Dinge durchgegangen bin, ob sie zu Bösen taugen). 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... Aber das sollten wir wohl mal in einem anderen Thread/Tutorial/Blog behandeln.... have fun! Lars |
|
|
|
10.01.2008 - 10:13
Beitrag
#5
|
|
|
Nachschlagewerk des Orakels Gruppe: Mods Beiträge: 955 Mitglied seit: 29.08.2006 Wohnort: Frankfurt am Main Mitglieds-Nr.: 6.217 |
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 |
|
|
|
10.01.2008 - 11:31
Beitrag
#6
|
|
|
DELETE FROM users WHERE search_count < 1 Gruppe: Admin Beiträge: 314 Mitglied seit: 15.07.1976 Wohnort: Osnabrück Mitglieds-Nr.: 2 |
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 Es ist Paranoia - ich traue mir dahingehend nicht wirklich... 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.... Aber wie gesagt, es ist bei mir zum gewissen Teil auch Paranoia... have fun! |
|
|
|
10.01.2008 - 12:07
Beitrag
#7
|
|
|
Nachschlagewerk des Orakels Gruppe: Mods Beiträge: 955 Mitglied seit: 29.08.2006 Wohnort: Frankfurt am Main Mitglieds-Nr.: 6.217 |
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. Nochmal zum Verständnis. Angenommen ein System mit ZITAT("php.ini") variables_order = "EGPCS" und ein Aufruf foobar.php?foo=bar. Dann hat (sofern foo nicht auch eine Umgebungsvariable ist) $foo den Wert 'bar'. Gleiches gilt für $GLOBALS['foo'] und $_GET['foo']. $_POST['foo'] ist hingegen nicht gesetzt. Wenn du nun $_GET unsettest, ändert sich an $foo und $GLOBALS['foo'] nichts - insofern wäre der einzige abgefangene Flüchtigkeitsfehler der, dass du auf $_GET['foo'] zugreifst?
register_globals = On |
|
|
|
Conny Die Robots und das Kontaktformular 07.01.2008 - 9:09
harlequin moin!
Das Problem ist, dass diese Spammer sic... 07.01.2008 - 9:39
Andreas ZITAT(Conny @ 07.01.2008 - 9:09) sei... 07.01.2008 - 10:36
Thomas Eine weitere Idee: Da es den Spammern meist um die... 07.01.2008 - 13:20
Conny Ok, vielen Dank.
ich werde mir diese 'Captchas... 07.01.2008 - 14:06
Andreas ZITAT(Conny @ 07.01.2008 - 14:06) Se... 07.01.2008 - 15:08
Conny Hallo,
bin bei "JAX" fündig geworden und... 07.01.2008 - 18:59
Andreas ZITAT(Conny @ 07.01.2008 - 18:59) Mö... 07.01.2008 - 20:07
Conny Hallo,
bin bereits ein Stückchen weiter.
Die Code ... 07.01.2008 - 23:49
Thomas Ohne jetzt ganz genau auf den Code geguckt zu habe... 08.01.2008 - 8:37
Conny Moin Thomas,
wenn ich an der Stelle include verwe... 08.01.2008 - 10:08
Andreas ZITAT(Conny @ 08.01.2008 - 10:08) An... 08.01.2008 - 10:25
Thomas ZITAT(Conny @ 08.01.2008 - 10:08) An... 08.01.2008 - 10:52
Conny Wenn ich statt include header('Location: konta... 08.01.2008 - 10:56
Thomas Mit dem Aufruf von header() wird ein neuer Request... 08.01.2008 - 11:00
Conny Ja, da haben sich unsere Postings überschnitten.
I... 08.01.2008 - 11:10
Thomas Ich habe in der Regel ein Skript - wenn ein Fehler... 08.01.2008 - 11:25
Andreas ZITAT(Thomas @ 08.01.2008 - 11:25) P... 08.01.2008 - 13:16
Conny ZITAT(Thomas @ 08.01.2008 - 11:25) P... 08.01.2008 - 15:19
Thomas Hmmm - zurück über JS ist zwar ganz nett, aber bei... 08.01.2008 - 19:17
Conny Hallo Thomas,
Nun denn, das Ergebnis ist OnLine ... 08.01.2008 - 21:34
Thomas Irgendwie hatte ich mir das komplett anders vorges... 09.01.2008 - 8:37
Conny So, ich glaube ich habe eine elegante Lösung gefun... 08.01.2008 - 20:58
Conny Moin Thomas,
vielen Dank für die Testreihe!
Di... 09.01.2008 - 10:01
Thomas ZITAT(Conny @ 09.01.2008 - 10:01) Di... 09.01.2008 - 11:03
harlequin ZITAT(Thomas @ 10.01.2008 - 12:07) Z... 10.01.2008 - 12:35![]() ![]() |
|
Vereinfachte Darstellung | Aktuelles Datum: 08.12.2025 - 10:21 |