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