Kategorien
- [-]Developer (92)
- API (14)
- Backend (16)
- Extensions (26)
- HTML & CSS (3)
- Typoscript (31)
- [-]Redaktionelles (15)
- Anleitungen (6)
- Tipps (6)
- Sonstiges (29)
Schlagwortwolke
| « | September 2010 | » | ||||
|---|---|---|---|---|---|---|
| S | M | T | W | T | F | S |
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | ||
Letzte Nachrichten
- Datenschutzkonforme like-Buttons mit socialshareprivacy als...
- 22.09.2011 14:01
- Lightbox in eigener Extension
- 20.09.2011 23:26
- Eigene Datei-Icons in tt_news
- 20.09.2011 14:27
- socialshareprivacy - datenschutzkonforme Likebuttons
- 06.09.2011 21:54
Letzte Kommentare
- Hallo zusammen Falls Ihr das noch nicht gesehen habt, ich...
- 01.02.2012 02:35
- @Gunter: Wie kommst du drauf, das Fluid "beim Hersteller"...
- 30.01.2012 12:29
- Ich glaube, ich habe eine mögliche Datenschutzlücke in der...
- 30.01.2012 10:43
- Ich bin Journalistin und verstehe recht wenig von Typo3....
- 24.01.2012 17:47
In eigener Sache
Peter Linzenkirchner, Lisardo Multimedia in Augsburg. Freelance und Partner für Design- und Webagenturen in Augsburg und München. Pixelgenaue Templates, valides HTML, barrierearm. TYPO3-Projekte, Extension-Programmierung und mehr ...
Sichere Extensions
Tipps zum Absichern eigener Extensions
Unsicher Programmierung in Extensions ist eine der größten Gefahren bezüglich der Sicherheit einer TYPO3-Installation. Während der Core regelmäßig geprüft wird und Sicherheitsmängel zügig behoben werden, gilt das für viele Extensions nicht. Die wichtigsten EXtensions werden einem regelmäßigen Audit unterworfen, aber bei weitem nicht alle, dazu sind es zuviele. Und Extensions, die ihren Weg nie ins TER finden, werden natürlich auch nie geprüft.
TYPO3-API für Datenbank-Zugriffe
Generell sollte die TYPO3-API für alle Datenbankzugriffe verwendet werden. Diese sorgt unter anderem für das nötige Quotieren der Eingaben.
Wichtig sind hier vor allem diese beiden Methoden:
- $GLOBALS['TYPO3_DB']->fullQuoteStr($str,$table)
- $GLOBALS['TYPO3_DB']->fullQuoteArray($arr,$table,$noQuote=FALSE);
Näheres im Abschnitt Datenbankabfragen.
Einige Methoden der Klasse t3lib_div
Die Methoden der Klassse t3lib_div werden statisch aufgerufen.
- // Entfernt gefährlichen Code, Rückgabewert der bereinigte String
- t3lib_div::removeXSS($string)
- // Gültige E-Mail: Rüpckgabewert true/false
- t3lib_div::validEmail($email)
- // Testet auf gültige URL, Rückgabewert tru/false
- t3lib_div::isValidUrl($sanitizedUrl)
Übergabeparameter
Alle GET- und POST-Variablen sollten über die entsprechenden Funktionen der TYPO3-API angesprochen werden:
- // Übernahme der Parameter mit Namensindex der Extension:
- $this->piVars['parameter'];
- // Wenn das nicht möglich ist, dann so:
- t3lib_div::_GP($var);
- // oder getrennt nach GET / POST
- t3lib_div::_GET($var);
- t3lib_div::_POST($var);
Wichtige PHP-Befehle
- // Kürzen eines UTF-8-Strings
- // Länge eines UTF-8-Strings prüfen
- // Integer erzwingen
- // Alle Tags aus einem String entfernen:
- // einige Tags erlauben (Achtung: die erlaubten Tags können Parameter enthalten!)
- // Tags in Entities umwandeln:
Datenfilter – neue Möglichkeiten mit PHP5
Diese Datenfilter werden in TYPO3 seit einigen Versionen ebenfalls eingesetzt. Einige kleine Anwendungsbeispiele:
- // Test auf korrekte URL
- $url='http://www.lisardo.de';
- if ( @filter_var($url,FILTER_VALIDATE_URL) ===FALSE){
- }else{
- }
- // oder ein Test auf korrekte E-Mail:
- if(!filter_var("someone@lisardo...de",FILTER_VALIDATE_EMAIL)){
- }
- else{
- }
- // Oder ein Test ob eine POST-Variable namens "mail" eine gültige E-Mail enthält:
- if (!filter_input(INPUT_POST,'email',FILTER_VALIDATE_EMAIL)){
- echo"E-Mail ist falsch";
- }
- else{
- echo"E-Mail korrekt";
- }
Ein schöner Überblick über alle Filter mit Beispielcode ist bei w3schools, PHP Filter Functions zu finden. eine genaue Erläuterung im offiziellen PHP-Manual, Datenfilterung
Weiterführende Links
- Kommentare

