[TYPO3-german] Ist realurl ein DB-Killer? Wie kann man bestimmte Einträge ausschließen?

Alexander Averbuch alav at gmx.net
Sun Feb 19 18:21:55 CET 2017


Hallo zusammen,

Ich habe mir die Tabelle  tx_realurl_urldata angeschaut und habe festgestellt, dass ein Angreifer relativ einfach die DB mit Spam-Einträgen überfluten kann, so dass die gesamte Website nicht mehr funktionieren wird. Ein paar Beispiele:

Fall 1.

Ich habe eine Website in 2 Sprachen mit dem Sprachmenü: de und en.
Rufe ich die Seite /de/change-userdata/ mit dem GET-Parameter asd=123 auf

/de/change-userdata/?asd=123 

wird von TYPO3 die entsprechende Verlinkung zur en-Seite erstellt /en/change-userdata/?asd=123. Da ich beim Sprachmenü addQueryString = 1 setze, werden alle GET-Parameter immer übernommen. Realurl erzeugt 2 Einträge in der Tabelle tx_realurl_urldata:

/de/change-userdata/?asd=123&cHash=6f2fa4abfaa1a23ba7044c2bb3b4fd0b
/en/change-userdata/?asd=123&cHash=2342304980ad2837fadec803234234

Der Angreifer kann beliebig viele GET-Parameter mit unterschiedlichen Werten an die URL Anhängen, alle werden in die DB geschrieben.

Fall 2.

Ich benutze auf einer Seite den Fluid-Paginator <f:widget.paginate>. Die von ihm generierten Links sehen etwa so aus:

/en/listing-for-transaction/?tx_gbaccount_transactions[@widget_0][currentPage]=2

Füge ich dem Link den GET-Parameter asd=123 hinzu, bekommen ihn alle vom Paginator erzeugten Links. Auch hier kann Angreifer mit den GET-Parametern manipulieren. Dadurch, dass die generierten Links in die Tabelle tx_realurl_urldata geschrieben werden, kann sie schnell voll werden.

Habt ihr ähnliche Probleme gehabt? Habt ihr schon Gedanken darüber gemacht? Könnt ihr eure bestehenden Projekte prüfen? Was könnte die Abhilfe schaffen?

Viele Grüße,
Alexander 





More information about the TYPO3-german mailing list