Dieser Patch zeigt sehr schön, wie alle Extensions Ihr Süppchen kochen. Eine removeXSS Methode in der commerce_div Klasse (t3lib_div Geschwister) über mehrdimensionale Arrays. Vorbildlich ist, dass Ingo die “offizielle” TYPO3 removeXSS methode verwendet hat. Ich verstehe ihn auch total; Diese removeXSSStripTagsArray() methode in die t3lib_div zu bekommen, wäre ein Ding der Unmöglichkeit deswegen gibt es ja auch commerce_div.
Gut wäre eine allgemeine Security Klasse, in die man solche Funktionalität steckt, das ist aber wieder eine Funktionssammlung und kein wirkliches OOP…
Oder sollte man doch eher eine “User Input String” Klasse machen welcher man sagen kann was es sein soll und was es einem geben soll, z.B.:
$keyword = new UserInput($this->piVars[‘keyword’]);
$markers[‘###KEYWORD###’] = $keyword->getXSSEscaped();
… sql … WHERE keyword LIKE ‘%”.$keyword->getSQLEscaped().”%’ …
Oder noch besser, man bekommt an stelle eines piVar Arrays einfach UserInput Objekte, denen man sagen muss wie man den Inhalt möchte.
…
$name = $this->getUserInput(‘nam’);
$name->getSQLEscaped();
…
Apropos, wo filtert/escaped Ihr den User Input in Euren Extensions? Dort wo Ihr diesen nutzt oder dort wo Ihr in vom TYPO3 bekommt?
Es gibt so viele Varianten und man könnte Stunden darüber diskutieren ;-)