![]() |
Willkommen, Gast ( Anmelden | Registrierung )
![]() |
![]()
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 |
|
|
![]() |
![]()
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 |
|
|
![]()
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? ![]() |
|
|
![]()
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 |
|
|
![]()
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 ![]() |
|
|
![]()
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! |
|
|
![]()
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 |
|
|
![]() ![]() |
![]() |
Vereinfachte Darstellung | Aktuelles Datum: 15.05.2025 - 14:49 |