Author Topic: Eingabe-Problem von Sonderzeichen  (Read 563 times)

Offline eumel

  • Posts: 63
Eingabe-Problem von Sonderzeichen
« on: February 26, 2018, 04:44:34 PM »
Ich habe in meinem Bestellvorgang das Feld für die Kunden-Telefonnummer umfunktioniert in die Pflichteingabe Nickname.
Der Shop ist speziell für die Mitglieder eines Forums. Grundsätzlich funktioniert das auch, da bei den Nicknamen im Forum alle Zeichen erlaubt sind habe ich versucht das in dem Eingabefeld auch zu ermöglichen.
Ich habe in der save_form.php für "phone" folgende Änderungen vorgenommen:
Code: [Select]
if (strpos($field, 'phone') !== false) {
if (!preg_match('#^[A-ZÄÖÜäöüa-zß0-9.'.$add_chars.' *&+/~_ -<>]{1,50}$#', $value))
Und jetzt zu meinem Problem, einige User aus dem Forum haben in ihrem Nickname das symbolisierte Herz <3 und das wird im Shop nicht angenommen. Wenn ein Name mit dem Zeichen eingegeben wird ab dem < alles abgeschnitten, egal was noch kommt.

Habe ich da etwas in meiner Codeänderung falsch gemacht oder etwas vergessen?
Ansonsten scheinen alle Sonderzeichen zu funktionieren.

Offline dbs

  • Betatester
  • **
  • Posts: 7977
  • Gender: Male
  • tioz4ever
    • WebsiteBaker - jQuery-Plugins - Module - Droplets - Tests
Re: Eingabe-Problem von Sonderzeichen
« Reply #1 on: February 26, 2018, 05:05:09 PM »
Maskiere den Bindestrich mit \ oder setze ihn ganz nacht rechts hinter <>

Offline jacobi22

  • Posts: 5843
  • Gender: Male
  • Support also via PM or EMail
    • Jacobi22
Re: Eingabe-Problem von Sonderzeichen
« Reply #2 on: February 26, 2018, 05:06:20 PM »
Am Ende ist es Open Source und jeder kann damit machen, was er will, aber dieser Code würde einem Formularausfüller erlauben, dein komplettes System und, wenn er will, den kompletten Webserver zu übernehmen, inkl deiner Nachbarn auf dem Server. Im Worst Case gibt es eine Kündigung inklusive Schadensersatzforde rung vom Provider. Wenn du Pech hast, ist noch ein Shop im Nachbarschaftsraum und der möcht auch noch Regress

$add_chars ist meines Wissens nicht mehr in Bakery enthalten. Mit deinem Code kannst du auch bequem auf eine Prüfung verzichten

Wer nicht will, findet Gründe, wer will, findet Wege.

Offline eumel

  • Posts: 63
Re: Eingabe-Problem von Sonderzeichen
« Reply #3 on: February 26, 2018, 05:53:44 PM »
Ich hatte fälschlicherweise die save_form.php von einer alten Bakery-Installation in die akteuelle Version kopiert, das konnte wohl nicht gut gehen.

Also mal anders herum, hier ist der Orginal-Code von der aktuellen Version:
Code: [Select]
if (strpos($field, 'phone') !== false) {
if (!preg_match('#^[0-9)(xX+./\s\-]{7,20}$#u', $value))

Was muss ich da ändern damit alle Sonderzeichen gefahrlos eingegeben werden können?

Offline jacobi22

  • Posts: 5843
  • Gender: Male
  • Support also via PM or EMail
    • Jacobi22
Re: Eingabe-Problem von Sonderzeichen
« Reply #4 on: February 26, 2018, 08:29:03 PM »
Der Code oben war inkl der Reparatur von dbs und diesem $addchars soweit technisch schon funktionsfähig, öffnet aber Tür und Tor für alle möglichen Angriffe und wenn deine Servernachbarn betroffen sind, ist es auch nicht mehr nur deine Sache. Die bösen Zeichen sind die spitzen Klammern. Vielleicht googelt du mal nach XSS+MySQL-Injektion+Exploids und "hackst" dich selber mal - du wirst erschrocken sein...  :oops: :oops: :oops:
Wer nicht will, findet Gründe, wer will, findet Wege.

 

postern-length