einpraegsam.net
Du kommst hier nicht rein! Sicher programmieren
einpraegsam.net
1 Sicher – warum? 1. 2. Live Beispiele in echten T3 Extensions 1. SQL Injection 2. XSS (Cross Site Script) 3 Filtern der Usereingaben 3. 4. Vorstellung 4 g von wt_doorman 5. Allgemeine Links zum Thema
einpraegsam.net
Sicher – Warum?
einpraegsam.net
Es ist kein Problem eine unsichere Extension einzusetzen Jedenfalls so lange nichts passiert!
einpraegsam.net
Worst case für die Agentur: 1. Datenverlust 2. Unmut des Kunden 3 Zeitverlust 3. 4. Geldverlust 5. Mögliche Mö li h S Schadensersatzforderungen h d t f d 6. Mögliche Folgeschäden
einpraegsam.net
Beispiele p aus dem TER
einpraegsam.net
Filtern der Usereingaben g
einpraegsam.net
Umwandlung U u g in Integer g $intt = intval($string); $ tva ($st g); Findet Einsatz vorwiegend bei Datenbank Aktionen (z.B. Zeige Datensatz mit uid = intval($uid) ) Bsp: -„xxx“ zu 0 -„33“ zu 33
einpraegsam.net
String g bei Datenbankaktionen $st g = $string $GLOBALS[TYPO3_DB]->fullQuoteString($string); Findet Einsatz vorwiegend bei Datenbank Aktionen ((z.B. Zeige g Datensatz mit wert = „Usereingabe“) g ) Bsp: -„xx‘xx“ xx zu „x\ x\‘xx“ xx -„3“3“ zu „3\“3“
einpraegsam.net
Ausgabe u g im FE $string $st g = htmlentities($string); t e t t es($st g); Ausgabe von Text (auch in HTML) – Wandlung der Sonderzeichen in ASCII Code Bsp: -„xßxx xßxx“ zu „xßxx xßxx“ -„3‘>3“ zu „3'>3“
einpraegsam.net
Weitere Funktionen u 1. 2. 3. 4. 5.
t3lib_div::removeXSS() strip tags() (kein umfassender Schutz!) strip_tags() tslib_cObj::removeBadHTML() Addslashes() Bzw. t3lib_div::addSlashesOnArray()
einpraegsam.net
wt doorman wt_doorman
einpraegsam.net
Nutzung g zur Filterung g sämtlicher GET und POST Parameter einer TYPO3 Installation • Nutzung g in eigener g Extension • wt_directory • wt_gallery g y •
einpraegsam.net
int, defined values, text, alphanum, htmlentities
einpraegsam.net
einpraegsam.net
Allgemeine g Links Zum Thema
einpraegsam.net
• wt_doorman: http://typo3 org/extensions/repository/view/wt doorman/current/ http://typo3.org/extensions/repository/view/wt_doorman/current/
• Wikipedia zu SQL Injection: http://de.wikipedia.org/wiki/SQL_Injection // g/ / j
• Wikipedia zu XSS: http://de.wikipedia.org/wiki/Cross-Site_Scripting
• typo3.org zum Thema Th security i http://typo3.org/teams/security/
[email protected] y@ yp 3 g
• Tutorial Henning Pingel: http://www.slideshare.net/hepi/developing-extensions-with-security-inmind-presentation d
einpraegsam.net
Fragen, Wünsche oder A Anregungen? ?
einpraegsam.net
Vielen Dank für Ihre Aufmerksamkeit