20
In2code.de Wir leben TYPO3 In2code. Wir leben TYPO3 Du kommst hier nicht rein! Sicher programmieren

Secure TYPO Extensions

Embed Size (px)

DESCRIPTION

in2code: Security in TYPO3 Extensions

Citation preview

Page 1: Secure TYPO Extensions

In2code.deWir leben TYPO3 In2code.

Wir leben TYPO3

Du kommst hier nicht rein! Sicher programmieren

Page 2: Secure TYPO Extensions

In2code.deWir leben TYPO3

1.Sicher – warum?

2.Live Beispiele in echten T3 Extensions

1.SQL Injection

2.XSS (Cross Site Script)

3.Filtern der Usereingaben

4.Vorstellung von wt_doorman

5.Allgemeine Links zum Thema

Page 3: Secure TYPO Extensions

In2code.deWir leben TYPO3

Sicher – Warum?

Page 4: Secure TYPO Extensions

In2code.deWir leben TYPO3

Es ist kein Problem eine unsichere Extension einzusetzen

… so lange nichts passiert!

Page 5: Secure TYPO Extensions

In2code.deWir leben TYPO3

Worst case für die Agentur:1. Datenverlust2. Unmut des Kunden3. Zeitverlust4. Geldverlust5. Mögliche

Schadensersatzforderungen6. Mögliche Folgeschäden

Page 6: Secure TYPO Extensions

In2code.deWir leben TYPO3

Beispiele aus dem TER

Page 7: Secure TYPO Extensions

In2code.deWir leben TYPO3

SQL injection

Page 8: Secure TYPO Extensions

In2code.deWir leben TYPO3

Cross Site Scripting

Page 9: Secure TYPO Extensions

In2code.deWir leben TYPO3

Filtern der Usereingaben

Page 10: Secure TYPO Extensions

In2code.deWir leben TYPO3

Umwandlung in Integer

$int = intval($string);

Findet Einsatz vorwiegend bei Datenbank Aktionen (z.B. Zeige Datensatz mit uid = intval($uid) )Bsp: -„xxx“ zu 0-„33“ zu 33

Page 11: Secure TYPO Extensions

In2code.deWir leben TYPO3

String bei Datenbankaktionen

$string = $GLOBALS[‘TYPO3_DB‘]->fullQuoteStr($string);Findet Einsatz vorwiegend bei Datenbank Aktionen (z.B. Zeige Datensatz mit wert = „Usereingabe“)Bsp: -„x‘xx“ zu „x\‘xx“-„3“3“ zu „3\“3“

Page 12: Secure TYPO Extensions

In2code.deWir leben TYPO3

Ausgabe im FE

$string = htmlentities($string);

Ausgabe von Text (auch in HTML) – Wandlung der Sonderzeichen in ASCII Code

Bsp: -„xßxx“ zu „xßxx“-„3‘>3“ zu „3'>3“

Page 13: Secure TYPO Extensions

In2code.deWir leben TYPO3

Weitere Funktionen1. t3lib_div::removeXSS()2. strip_tags() (kein umfassender Schutz!)3. tslib_cObj::removeBadHTML()4. Addslashes() 5. Bzw. t3lib_div::addSlashesOnArray()

Page 14: Secure TYPO Extensions

In2code.deWir leben TYPO3

wt_doorman

Page 15: Secure TYPO Extensions

In2code.deWir leben TYPO3

• Nutzung zur Filterung sämtlicher GET und POST Parameter einer TYPO3 Installation

• Nutzung in eigener Extension• wt_directory• wt_gallery

Page 16: Secure TYPO Extensions

In2code.deWir leben TYPO3

int, defined values, text, alphanum, htmlentities

Page 17: Secure TYPO Extensions

In2code.deWir leben TYPO3

Page 18: Secure TYPO Extensions

In2code.deWir leben TYPO3

Allgemeine LinksZum Thema

Page 19: Secure TYPO Extensions

In2code.deWir leben TYPO3

• wt_doorman: http://typo3.org/extensions/repository/view/wt_doorman/current/

• Wikipedia zu SQL Injection: http://de.wikipedia.org/wiki/SQL_Injection

• Wikipedia zu XSS: http://de.wikipedia.org/wiki/Cross-Site_Scripting

• typo3.org zum Thema security http://typo3.org/teams/security/ [email protected]

• Tutorial Henning Pingel: http://www.slideshare.net/hepi/developing-extensions-with-security-in-mind-presentation

Page 20: Secure TYPO Extensions

In2code.deWir leben TYPO3In2code.

Vielen Dank

www.in2code.deStefan BusemannTina GasteigerAlex Kellner