Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

Formular sicher?

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
ole1210
PostRank 10
PostRank 10
Beiträge: 7464
Registriert: 12.08.2005, 10:40
Wohnort: Olpe

Beitrag von ole1210 » 02.08.2006, 11:38

Hallo Forum,

seit Tagen versuchen irgenwelche Gangster/Script-Kiddies ein Formular von mir zu missbrauchen. Bisher zum Glück erfolglos. Kann mir kurz jemand sagen ob das Ding sicher ist, oder ob die über Kurz oder Lang erfolg haben werden?

Code: Alles auswählen

<?php

$youremail= "info@domain.de";

if &#40;&#40;$name!=""&#41; && &#40;$tel!=""&#41; && &#40;$email!=""&#41;&#41; &#123;

Name&#58; $name\n
Vorname&#58; $Vorname\n
Email&#58; $email\n
Tel.&#58; $tel\n
Nachricht&#58; $nachricht\n

$subject2 = "Ihre Anfrage bei $chain -- Autoresponse";

$message2 = "Vielen Dank fuer Ihre Online Anfrage.\n Sie wird sofort zuegig bearbeitet.\n\n
Mit freundlichen Gruessen\n\n Ihr $chain-Team\n";


mail&#40;$youremail,$chain,$message,'FROM&#58; '.$email&#41;;
mail&#40;$email,$subject2,$message2,'FROM&#58; '.$youremail&#41;;
print "<html><head><title>Vielen Dank!</title></head>\n";
print "<body><h1>Vielen Dank!</h1><br>Vielen Dank f&uuml;r Ihr Vertrauen in $chain! \n";
print "Ihre Anfrage wird sofort z&uuml;gig bearbeitet.<br>\n</body></html>";

&#125;

else &#123;

print "<html><head><title>Wichtige Angaben fehlen</title></head>\n";
print "<body><h1>Fehler! Wichtige Angaben fehlen!</h1><br>\n";
print "Damit wir Ihre $art schnell und korrekt bearbeiten k&ouml;nnen,<br>\n";
print "ist die Angabe des <b>Namen</b>, <b>Email</b> und der <b>Telefonnummer</b> zwingend erforderlich.<br><br>\n";
print "Sie kommen mit der Zur&uuml;ck-Taste zur Eingabemaske zur&uuml;ck.<br>\n";
print "</body></html>\n";

&#125;

?>
Danke!!

Viele rüße

Ole

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


marc75
PostRank 9
PostRank 9
Beiträge: 1916
Registriert: 06.10.2004, 09:36

Beitrag von marc75 » 02.08.2006, 15:23

if (($name!="") && ($tel!="") && ($email!="")) {

Name: $name\n
Vorname: $Vorname\n
Email: $email\n
Tel.: $tel\n
Nachricht: $nachricht\n
produziert das nicht ein Error?

ole1210
PostRank 10
PostRank 10
Beiträge: 7464
Registriert: 12.08.2005, 10:40
Wohnort: Olpe

Beitrag von ole1210 » 02.08.2006, 15:41

Nö!

marc75
PostRank 9
PostRank 9
Beiträge: 1916
Registriert: 06.10.2004, 09:36

Beitrag von marc75 » 02.08.2006, 15:57

Nö!
Wie hast du denn dein PHP eingestellt?

Eigentlich müsste dein Code oben ein Parse error produzieren.

oldInternetUser
PostRank 9
PostRank 9
Beiträge: 1250
Registriert: 19.03.2005, 12:52

Beitrag von oldInternetUser » 02.08.2006, 16:08

ole1210 hat geschrieben:

Code: Alles auswählen

mail&#40;$youremail,$chain,$message,'FROM&#58; '.$email&#41;;
mail&#40;$email,$subject2,$message2,'FROM&#58; '.$youremail&#41;;
Ich verwende zwar kein PHP. Aber nach dem, was ich mal gelesen habe, sind die oberen Zeilen katastrophal. Der letzte Parameter enthält zusätzliche Header, $email stammt aus der Eingabe - also können zusätzliche Header und zwei Returns angefügt werden - dann müßte das der neue Body werden. Dann mag zwar die zweite Zeile crashen - aber das macht ja nichts, wenn mit der ersten schon Massenmails versandt wurden.

Also: Sorge dafür, daß da nur eine Mailadresse drinsteht - nichts sonst.

Bei DrWeb gab es mal einen Artikel darüber.

ole1210
PostRank 10
PostRank 10
Beiträge: 7464
Registriert: 12.08.2005, 10:40
Wohnort: Olpe

Beitrag von ole1210 » 02.08.2006, 16:08

Ich hab mein PHP gar nicht eingestellt. Nutze das so, wie es von 1und1 geliefert wird! Habe dieses Formular seit mehrerern Jahren praktisch unverändert im Einsatz. Läuft einwandfrei und wird jeden Tag zwischen 30 und 50 Mal versendet!

robo
PostRank 8
PostRank 8
Beiträge: 837
Registriert: 23.12.2003, 19:41
Wohnort: Schwangau

Beitrag von robo » 02.08.2006, 18:07

ole1210 hat geschrieben:seit Tagen versuchen irgenwelche Gangster/Script-Kiddies ein Formular von mir zu missbrauchen.
Inwiefern?
ole1210 hat geschrieben:Bisher zum Glück erfolglos. Kann mir kurz jemand sagen ob das Ding sicher ist, oder ob die über Kurz oder Lang erfolg haben werden?
Das Ding ist total unsicher! Siehe Antwort von oldInternetUser.

Allerdings ist es viel zu umständlich, dafür zu sorgen, dass in der Variable nur eine Mailadresse drinsteht. Es ist viel einfacher, dafür zu sorgen, dass KEIN Zeilenumbruch drinsteht, bzw. wenn ein Zeilenumbruch drinsteht, einfach einen 403 auswerfen und fertig.

siehe https://www.abakus-internet-marketing.d ... tml#240403

cu, Robo :)

ole1210
PostRank 10
PostRank 10
Beiträge: 7464
Registriert: 12.08.2005, 10:40
Wohnort: Olpe

Beitrag von ole1210 » 02.08.2006, 18:46

@ robo:
Dein Code hilft bisher sehr gut um Spam im Kontaktformular zu unterbinden.

Jetzt geht es aber nicht um Spam. Es wird immer versuch nen BCC einzuschmuggeln. Bisher erfolglos. Aber wahrscheinlich nicht mehr lange. Das würde ich gerne verhindern!

oldInternetUser
PostRank 9
PostRank 9
Beiträge: 1250
Registriert: 19.03.2005, 12:52

Beitrag von oldInternetUser » 02.08.2006, 18:53

ole1210 hat geschrieben:Jetzt geht es aber nicht um Spam. Es wird immer versuch nen BCC einzuschmuggeln. Bisher erfolglos. Aber wahrscheinlich nicht mehr lange. Das würde ich gerne verhindern!
Das sind doch genau die zusätzlichen Mail-Header.

Google mal nach 'Mail Header Injection', da kommt der DrWeb-Artikel zuerst und kapiere, worin das Problem besteht.

Wenn das erst im eigentlichen Mailbody steht, dann ist es harmlos.

ole1210
PostRank 10
PostRank 10
Beiträge: 7464
Registriert: 12.08.2005, 10:40
Wohnort: Olpe

Beitrag von ole1210 » 02.08.2006, 19:07

Perfekt. Ich denke mit diesem Artikel komme ich weiter und kann das Problem entfernen.

Noch ist nichts passiert. Das sehe ich an den Logfiles!

robo
PostRank 8
PostRank 8
Beiträge: 837
Registriert: 23.12.2003, 19:41
Wohnort: Schwangau

Beitrag von robo » 02.08.2006, 20:32

ole1210 hat geschrieben:@ robo:
Dein Code hilft bisher sehr gut um Spam im Kontaktformular zu unterbinden.

Jetzt geht es aber nicht um Spam. Es wird immer versuch nen BCC einzuschmuggeln. Bisher erfolglos. Aber wahrscheinlich nicht mehr lange. Das würde ich gerne verhindern!
Und genau dagegen hilft der Code auch!

Um ein BCC einzuschmuggeln, muss direkt vor dem BCC ein Zeilenumbruch eingeschmuggelt werden, und genau das überprüft der Code doch!

Der DrWeb-Artikel erklärt das zwar schön, aber die Lösung ist viel zu umständlich! Wieso soll ich lange irgendwelche Zeichen filtern? Um ein BCC einzuschmuggeln, brauche ich einen Zeilenumbruch, und den kann man per Browser in einem Input-Feld nicht eingeben. Wenn also ein Zeilenumbruch aus einem Input-Feld kommt, steckt irgendein böswilliger Angriff dahinter. Darum in dem Fall Fehlermeldung ausgeben und Script abbrechen, fertig.

cu, Robo :)

ole1210
PostRank 10
PostRank 10
Beiträge: 7464
Registriert: 12.08.2005, 10:40
Wohnort: Olpe

Beitrag von ole1210 » 03.08.2006, 10:54

Aha! Dann werde ich das jetzt mal in alle Formulare einbauen, und nicht nur in die wo ich nen akutes Spam-Problem habe.

Hatte einfach nen Denkfehler!

Danke!

marc75
PostRank 9
PostRank 9
Beiträge: 1916
Registriert: 06.10.2004, 09:36

Beitrag von marc75 » 03.08.2006, 12:13

Ich hab mein PHP gar nicht eingestellt. Nutze das so, wie es von 1und1 geliefert wird! Habe dieses Formular seit mehrerern Jahren praktisch unverändert im Einsatz. Läuft einwandfrei und wird jeden Tag zwischen 30 und 50 Mal versendet!
beim besten willen, folgende Zeilen produzieren bei mir immer ein Error:

Code: Alles auswählen

Name&#58; $name\n 
Vorname&#58; $Vorname\n
Name oder auch Vorname sind ja keine Konstanten, in einer Variable stehen diese Zeilen ja auch nicht, kein abschliessendes ; etc.


@robo
Allerdings ist es viel zu umständlich, dafür zu sorgen, dass in der Variable nur eine Mailadresse drinsteht. Es ist viel einfacher, dafür zu sorgen, dass KEIN Zeilenumbruch drinsteht, bzw. wenn ein Zeilenumbruch drinsteht, einfach einen 403 auswerfen und fertig.
Kann mich irren, aber das message Feld sollte man ja auch prüfen und diese haben meist Zeilenumbrüche.

robo
PostRank 8
PostRank 8
Beiträge: 837
Registriert: 23.12.2003, 19:41
Wohnort: Schwangau

Beitrag von robo » 03.08.2006, 13:02

marc75 hat geschrieben:
Allerdings ist es viel zu umständlich, dafür zu sorgen, dass in der Variable nur eine Mailadresse drinsteht. Es ist viel einfacher, dafür zu sorgen, dass KEIN Zeilenumbruch drinsteht, bzw. wenn ein Zeilenumbruch drinsteht, einfach einen 403 auswerfen und fertig.
Kann mich irren, aber das message Feld sollte man ja auch prüfen und diese haben meist Zeilenumbrüche.
Du kannst mit der Methode natürlich keine Daten aus Textarea-Feldern prüfen, denn diese enthalten in der Regel Zeilenumbrüche. Das ist aber nicht weiter tragisch, denn Daten aus Textarea-Feldern wie eben das message-Feld kommen normalerweise auch nicht in den Header der Mail rein, sondern in den Body. Und darüber kann man keinen Spam an Dritte versenden.

cu, Robo :)

kaisen
PostRank 6
PostRank 6
Beiträge: 462
Registriert: 29.11.2005, 10:16

Beitrag von kaisen » 03.08.2006, 13:26

wie kann ich bitte in ein input textfeld einen zeilenumbruch einfügen?
Indem ich da "test test \n " reinschriebe?

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag