Script-Code Eingabe in Formularfelder unterbinden

Foickert

Well-known member
9 August 2006
59
0
Hallo Leute,

ich brauch dringend eure Hilfe!

An meiner Seite vergreift sich ein Spammer, der durch Eingabe von Script-Code (HTML-Code etc.) in Formularfelder von zB. einem Kontaktformular Spammails über unseren Server verschickt.

Eigentlich sollte in das Feld lediglich zB. eine eMail Adresse eingegeben werden.

Wie kann ich unterbinden, dass Script-Code eingegeben wird bzw. in der Folgeseite dann auch noch ausgeführt wird?

Danke!!!
 
das musst du serverseitig verhintern... also man kann zwar alles eingeben, aber nach dem absenden wird die eingabe vom server gefiltert. ich geh mal davon aus das php verwendet wird... html codes kannst du mit $eingabe = strip_tags($eingabe); entfernen.

und zu deinem spam problem... meinst läuft das so ab das der absender manipuliert wird und dort weiter empfäger angegben werden. um das zu sichern musst du prüfen ob die absender adresse valid ist... zb mit
PHP:
if(preg_match("//^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,4})$/",
$email)) {
  //richtige email
}
 
Vielen Dank für deine Nachricht ZeroCCC!

Also das mit dem Prüfen der korrekten eMail-Adresse bringt in meinem Fall nichts, weil der Spammer den Code dann einfach zB. über das "Namen"-Feld einträgt und im Feld "E-Mail" eine förmlich korrekte eMail-Adresse einträgt.

Ich habe jetzt jedoch alle Eingabefelder mit der strip_tags() Funktion versehen.

Ich hoffe nur, dass diese Funktion auch einen Code wie zB. diesen verwendeten erkennt:

Code:
survey
Content-Type: multipart/alternative; 
              boundary=f1cb763b6d3dbb5ae2d9afad9567c56b
X-Mailer: Ximian Evolution 1.0.3.99
Subject: or by spraying the bacon with a liquid
cc: [email protected]
cc: [email protected]
cc: [email protected]
cc: [email protected]
cc: [email protected]
cc: [email protected]
cc: [email protected]
cc: [email protected]
cc: [email protected]
cc: [email protected]

This is a multi-part message in MIME format.

--f1cb763b6d3dbb5ae2d9afad9567c56b
Content-Transfer-Encoding: 7bit
Content-Type: text/plain

system is moved from a cooking cabinet to a smoking cabinet by an overhead 
chain. moke flavour is imparted to the bacon either using natural smoke 
obtained by burning wood chips, or by spraying the bacon

--f1cb763b6d3dbb5ae2d9afad9567c56b
Content-Transfer-Encoding: 8bit
Content-Type: text/plain

system is moved from a cooking cabinet to a smoking cabinet by an overhead 
chain. moke flavour is imparted to the bacon either using natural smoke 
obtained by burning wood chips, or by spraying the bacon

--f1cb763b6d3dbb5ae2d9afad9567c56b--
 
Also das mit dem Prüfen der korrekten eMail-Adresse bringt in meinem Fall nichts, weil der Spammer den Code dann einfach zB. über das "Namen"-Feld einträgt und im Feld "E-Mail" eine förmlich korrekte eMail-Adresse einträgt.

bevor du mit den eingaben arbeitest solltest du sicherstellen, dass felder, die unter umständen im header auftauchen KEIN umbruchzeichen enthalten. das kannst du z.b. so machen:

PHP:
list($email,)  = split( "\r\n|\n\r|\n|\r", $_POST['email']."\n" );
list($name,)  = split( "\r\n|\n\r|\n|\r", $_POST['name']."\n" );
list($subject,)  = split( "\r\n|\n\r|\n|\r", $_POST['subject']."\n" );

die einzigen umbrüche, die du nicht entfernen muss, sind die aus dem nachricht-feld. alles andere würde ich mal pauschal auf die art behandeln. ist zwar etwas untypisch und sieht gar nicht schön aus, aber es wirkt :)

HTH