bestimmte Zeichenfolge aus Formularfeldern herausfiltern / entfernen

simsus

Grünschnabel
Moin Moin zusammen

Folgendes Problem:
Über meine Formulare erhalte ich hin und wieder Spam (Gott sei Dank nicht all zu oft) inkl. <script> Elemente. Eine XSS Lücke habe ich derzeit nicht entdeckt, da ich die Daten aktuell nicht ausgebe. Das soll sich jedoch irgendwann mal ändern.

Nun hatte ich hier im Forum einige Beiträge gefunden, konnte auch die Vorgehensweise nachvollziehen, aber irgendwie bekomme ich die Möglichkeiten nicht zum laufen:
http://www.tutorials.de/threads/zeichen-ersetzen.365487/#post-1893220

Meine Idee:
Vor Absenden des Formulars sollen "<script>...</script>" gelöscht werden.
Dabei kam mir replace in den Sinn, habe es aber nicht umsetzen können.

Vielleicht kann mir da jemand weiterhelfen :-(

Lieben Gruss

Marcel
 
Hi

soll nur Text oder auch HTML erlaubt sein (nur ohne Scripte eben)?

Wenn Text: Wie wäre es, die Scripte nicht zu entfernen, aber unausführbar als normalen Text anzuzeigen?
Das geht nämlich mit einem Einzeiler: htmlspecialchars.

Zum Spam generell: Captcha...?
 
Hi sheel

Danke für deine Rückmeldung.

Wenn nur Text erlaubt wäre, dann wäre es natürlich sehr edel. Dann liest es sich u.U. auch besser ;-)

htmlspecialchars hatte ich schon mal gesehen, aber da ich von PHP keine Ahnung habe, war das hinfällig.

Eine Captcha Lösung habe ich bereits implementiert, jedoch kommen hier und da doch noch Mails durch. Ich gehe davon aus, dass es dann keine Bots sind.

Marcel
 
Captchas können heutzutage schon von Bots gelöst werden. Manche Leute setzen sogar echte Menschen für das repetitive Captchalösen ein (für sehr wenig Geld im Ausland, schätze ich mal).

Wenn du nur reinen Text anzeigen willst, hat dir sheel bereits eine Lösung gezeigt: htmlspecialchars().
Wenn du zusätzlich Tags entfernen willst (aus stilistischen Gründen), kannst du strip_tags() nutzen.
 

Neue Beiträge

Zurück