Warnings of the code quality analysis?

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?

 

Schau dir mal den zweiten Parameter hier an und die Warnung https://www.php.net/manual/en/function.unserialize.php

Hm, ich weis noch nicht so recht was ich jetzt anders machen könnte.

Zumal SW 5.6 (nur ein Beispiel):

 

Moin @R4M‍,

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?

unserialize($foo, , ['allowed_classes' => false]);

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.

Hilft dir das weiter? 

Gruß,
Patrick 

Ah ok, ich habe mich nur gewundert warum Shopware sich nicht selber daran hält, aber das bei den Plugins bemängelt :slight_smile:

@R4M schrieb:

Ah ok, ich habe mich nur gewundert warum Shopware sich nicht selber daran hält, aber das bei den Plugins bemängelt :slight_smile:

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. 

Alles gut, in meinem Falle wurde das Plugin ja auch nicht abgelehnt.