Heute mal wieder ein Update von einem Plugin gemacht und in den Store hochgeladen. Nun sehe ich dort plötzlich folgenden Warnhinweis:
Severity Type Message Line File
INFO SECURITY_HOTSPOT Make sure deserializing objects is safe here. 67 ...php
INFO SECURITY_HOTSPOT Make sure deserializing objects is safe here. 70 ...php
Dabei geht es um die Funktion unserialize(). In der Shopwareversion 5.5.10 wird diese Funktion übrigens auch benutzt.
Nun ja, wie muss ich nun diese Warnung deuten? Ist es zukünftig nicht mehr erlaubt unserialize() einzusetzen?
das ist eine berechtigte Kritik. Ich habe mir das direkt mal angeschaut und werde gleich intern eine Änderung aller betroffenen Code Stellen beantragen.
Nichtsdestotrotz solltest du das in deinem Plugin ändern.
Wie?
Wichtig ist hier der zweite Parameter.
Bzw., falls beim unserialize eine Klasse instanziert werden können soll, musst du diese natürlich stattdessen dort angeben.
Ah ok, ich habe mich nur gewundert warum Shopware sich nicht selber daran hält, aber das bei den Plugins bemängelt
Die Hinweise kommen ja nicht von uns, bzw. wir haben die nicht explizit eingebaut. Wir nutzen zum Test der Plugins eine Kombination aus eigenen Regeln (Plugin-Struktur usw.), PHPStan und SonarCube. Dazu wird es in Zukunft auch noch weitere Informationen im Newsletter geben. Viele Dinge die dort genannt werden sind auch erstmal „Das könnte eine potentielle Security-Lücke sein, überprüfe das bitte mal“. Das wird erstmal nicht dazu führen, dass das Plugin abgelehnt wird, weil man das automatisiert ja garnicht so wirklich prüfen können. Die Tools geben Hinweise zur Qualität aus und werden dann zurück gespielt. Ob das dann berechtigt ist, muss dann einmal manuell vom Hersteller geprüft werden.
Natürlich gibt es auch durchaus Hinweise im Core, die aber entweder geprüft werden und sicher sind oder halt alternativ dann auch gefixt werden.