von Henning Pingel, 02.12.2008

Sicherheitslücken in eigenen und fremden Extensions schließen: TYPO3-Extensions absichern

Aus dem
t3n Magazin Nr. 14

Jetzt kaufen

Böswillige Nutzereingaben können, wenn man sie vertrauensvoll gewähren lasst, in vielerlei Hinsicht für Ärger sorgen. Die Mehrzahl der verbreiteten Verwundbarkeitstypen, etwa „File Inclusion“, „Path Traversal“, „Code Execution“ oder „Information Disclosure“, lassen sich auf unzureichend überprüfte Eingaben zurückführen.

Die Herausforderung bei der Entschärfung von Nutzereingaben besteht darin, im jeweiligen Kontext die jeweils gefährlichen Zeichen oder Zeichenfolgen zu erkennen. Dazu gehören unter anderem Newline-Zeichen, Backticks, Null-Bytes, Anführungszeichen und spitze Klammern. Durch die Vielfalt vorhandener Zeichensätze und Enkodierungsformen können Zeichen mit der gleichen Bedeutung jedoch in unterschiedlichen Varianten in Erscheinung treten.

Im folgenden konzentrieren wir uns auf die in TYPO3-Extensions häufig vorzufindenden „Klassiker“: SQL-Injections und Cross Site Scripting (XSS).

SQL-Injections ausschließen

Bei einer Datenbankabfrage können Nutzereingaben SQL-Injections Tür und Tor öffnen. Deshalb muss verhindert werden, dass jegliche Art von gefährlichen Zeichen und Zeichenfolgen ungefiltert in den Abfrage-String gelangen können. stellt in der Klasse „t3lib_db“ Methoden für Datenbank-Operationen bereit, die dabei helfen können. Um dem Datenbank-Abstraktions-Layer von TYPO3 keine Steine in den Weg zu legen, sollten Extension-Entwickler für die Datenbank-Kommunikation ausnahmslos auf diese Methoden zurückgreifen.

Seite:  1 2 3 4 5 6 7 8 9 10 11 12 13

Empfohlene Artikel

2 Antworten

  1. von wir 12.04.2010 (20:42Uhr) 1.

    Ein CSRF-Angriff kann nicht dadurch verhindert werden, dass Requests, die zu einer Veränderung von Daten führen, nur per HTTP-POST akzeptiert werden. Auch per HTTP-POST kann ohne weiteres ein gefälschter Request abgesetzt werden. Dazu erstellt der Angreifer eine Seite, auf die er das Opfer lockt. Dort wird der manipulierte Request entweder mittels einer clientseitigen Skriptsprache wie zum Beispiel Javascript erzeugt oder der Angreifer bringt das Opfer dazu, auf einen Button oder ein Bild zu klicken, wodurch der Request abgesetzt wird. Wählt der Angreifer als Ziel (target-Parameter) des Formulars einen unsichtbaren Frame oder Inlineframe, sind auch hier die Chancen gering, dass das Opfer den Angriff bemerkt. (http://de.wikipedia.org/wiki/Cross-Site_Request_Forgery#Nur_HTTP-Post_akzeptieren)

    Was mich aber interessieren würde, ist ob TYPO3 Funktionen bereitstellt um Canaries in Formulare einzufügen.

  2. von Get Variablen - PHP include - TYPO3 Foru… 17.06.2011 (14:06Uhr) 2.

    [...] [...]

Deine Meinung


(wird nicht veröffentlicht)