Auch per TypoScript können mit Hilfe des Objekts „CONTENT“ Datenbankabfragen gestaltet werden, und auch dort müssen Nutzereingaben, die etwa über „GPvar“ eingebunden werden, entschärft werden. Zum Erzwingen von Integer-Werten steht per „stdWrap“ die Eigenschaft „intval“ zur Verfügung, doch es gibt derzeit per TypoScript keinerlei vorgegebene Möglichkeit, über eine „stdWrap“-Eigenschaft „quoteStr()“ zu nutzen. Um dies zu tun, muss über „stdWrap“ eine nutzerdefinierte PHP-Funktion eingebunden und aufgerufen werden [4].
// String entschärfen mit Längencheck und quoteString
$first_name = $this->piVars[''first_name'];
if (mb_strlen( $first_name ) > 50) { $first_name = mb_substr( $first_name, 0, 50 ); }
$first_name = $TYPO3_DB->quoteStr( $first_name, 'tx_human' );
$res = $TYPO3_DB->exec_SELECTquery( '*', 'tx_human', 'first_name =\''. $first_name . '\'' );
// String entschärfen mit fullQuoteString (zur Vereinfachung ohne Längencheck)
$first_name = $TYPO3_DB->fullQuoteStr( $this->piVars['first_name'], 'tx_human' );
$res = $TYPO3_DB->exec_SELECTquery( '*', 'tx_human', 'first_name ='. $first_name );
// Erzwingen eines Integer-Werts und Plausibilitäts-Check des gültigen Bereichs
$max_age = intval( $this->piVars['max_age']);
if ($max_age < 0 || $max_age > 150) { $max_age = 0; }
$res = $TYPO3_DB->exec_SELECTquery( '*', 'tx_humans', 'human_age <= '. $max_age);
Listing 1
XSS blockieren
Wenn Nutzereingaben ungefiltert in die HTML-Seite eingebettet werden, wird Cross-Site-Scripting (XSS) möglich: Die Webseite kann vom Angreifer mit unerwünschten HTML-Strukturen oder JavaScript-Code angereichert werden. Ziele von XSS-Angriffen können vielfältig sein: Vom Cookie-Diebstahl, mit der ein unbefugter Dritter eventuell eine bestehende Session kapern kann („Session Hijacking“), bis zum „Website Defacement“ ist vieles möglich.





![TYPO3: 10 Jahre in 60 Sekunden zusammengefasst [Video]](http://t3n.de/uploads/t3n-news-post-361575_typo3_medium.jpg)

2 Antworten
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.
von Get Variablen - PHP include - TYPO3 Foru… 17.06.2011 (14:06Uhr) 2.
[...] [...]