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

Zusammenfassend kann man sagen, dass die Inhalte der PHP-Superglobals „$_GET[]“, „$_POST[]“ und „$_COOKIE[]“ komplett unter der Kontrolle des Users stehen, teilweise gilt dies auch für „$_SERVER[]“. Das Array „$_REQUEST[]“ wird im Rahmen von TYPO3-Extensions übrigens gar nicht benötigt. Es gibt keinen Grund es zu benutzen, auch im TYPO3-Core wird es nicht verwendet.

Nutzereingaben an Bord holen

Die TYPO3-Coding-Guidelines empfehlen Entwicklern, die in ihrer Extension beispielsweise auf den Inhalt des Formularfelds „first_name“ zugreifen wollen, dies mit Hilfe von „t3lib_div::_POST('first_name')“ zu tun, obwohl sie stattdessen auch einfach „$_POST['first_name']“ verwenden könnten. Um diese Empfehlung zu erklären, muss man etwas ausholen.

Mit Hilfe der Option „magic_quotes_gpc“ kann der PHP-Interpreter so konfiguriert werden, dass der Funktionsumfang von „addslahes()“ automatisch auf alle Request-Variablen angewendet wird, um so SQL-Injections zu verhindern.

Der Sinn dieser Konfigurationsoption ist bei Sicherheitsexperten jedoch derart umstritten, dass sie gemieden werden sollte und in PHP 6 nicht mehr enthalten sein wird [2]. Da eine Web-Applikation wie keinen Einfluss darauf hat, ob der Administrator „Magic Quotes“ aktiviert hat, muss der TYPO3-Core dafür sorgen, dass die Request-Variablen in jedem Fall im erwarteten Format vorliegen.

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)