[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