cmsimple-xh / xhshop

A simple shop for CMSimple_XH
GNU General Public License v3.0
4 stars 3 forks source link

filenames of product img and preview img are not escaped #227

Closed manu37 closed 3 years ago

manu37 commented 4 years ago

A very seldom bug: A user names an article "Home is where I'm with you". The product images have the same (!) name. As all texts and titles are escaped, the filenames are not and therefore catalog.php crashes. Bug or bad practice?

cmb69 commented 4 years ago

Corruption of catalog.php is a bug.

manu37 commented 3 years ago

Was mich wundert, wo und wie der catalog.php unescaped wird. Geschieht beim include irgendwie automatisch. Vielleicht kann mir der PHP Guru das mal erklären.

cmb69 commented 3 years ago

catalog.php ist eine PHP Datei; beim Einbinden werden Backslash-Escape-Sequenzen in den Strings automatisch von PHP aufgelöst (cf. https://3v4l.org/Khh6i). Wird catalog.php manuell bearbeitet, dann muss auch manuell maskiert werden, sonst Syntax Error (cf. https://3v4l.org/ouhe1). Wird etwas im Backend eingegeben, dann muss der Shop diese Maskierung vornehmen. Ansonsten ist das ein Bug, und ich glaube darum geht es es hier.

Wir könnten uns viel Arbeit sparen, wenn wir var_export() nutzten, aber dann sähe der Katalog nich so schön übersichtlich aus. Und letztlich sollten wir gar kein PHP speichern, sondern wohl eher JSON.

manu37 commented 3 years ago

Genau. Das Übel beginnt beim Verwenden einer Bilddatei mit Sonderzeichen im Dateinamen. Das bringt anderes Unglück, sollte den Shop aber nicht zum Absturz bringen. Deine Anregung habe ich erfasst.

cmb69 commented 3 years ago

Okay, Issue sollte also nicht nicht geschlossen werden.

manu37 commented 3 years ago

Den Bugfix könnte schon geschlossen werden, Für das Weitere habe ich ja einen neuen issue aufgetan.

cmb69 commented 3 years ago

Ah, richtig, ich hatte den Commit nicht gesehen, und dachte du hättest das Issue versehentlich geschlossen. Tipp: statt see #227 einfach fix #277 oder close #277 schreiben; dann wird das Issue automatisch geschlossen.