User Tools

Site Tools


s5:dwplugins

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
s5:dwplugins [2016/10/26 14:15] – [Security: XSS] andis5:dwplugins [2016/10/31 12:48] – [Learn more] andi
Line 10: Line 10:
  
   * Andreas Gohr   * Andreas Gohr
-  * 2004 Diplom an der FHTW in Angewandte Informatik+  * 2004 Diplom an der FHTW Berlin in Angewandte Informatik
   * DokuWiki lead developer   * DokuWiki lead developer
-  * Twitter: @splitbrain +  * splitbrain.org 
-  * www.splitbrain.org+  * twitter.com/splitbrain 
 +  * github.com/splitbrain
  
 ===== Agenda ===== ===== Agenda =====
Line 36: Line 37:
  
  
-===== Features =====+===== DokuWiki Features =====
  
-  * Syntax -> HTML+  * Syntax nach HTML rendern
   * Medieninhalte   * Medieninhalte
   * Organisation in Namensräumen   * Organisation in Namensräumen
Line 48: Line 49:
  
   * Features nebenbei auf dokuwiki.org zeigen   * Features nebenbei auf dokuwiki.org zeigen
-===== Features =====+===== DokuWiki Features =====
  
   * Nutzerverwaltung und Gruppen   * Nutzerverwaltung und Gruppen
Line 168: Line 169:
  
   * repo aufmachen und init commit machen   * repo aufmachen und init commit machen
 +    * git init 
 +    * git add . 
 +    * git commit 
 +    * github kram
 ===== Intermission - DokuWiki Parser ===== ===== Intermission - DokuWiki Parser =====
  
Line 187: Line 191:
     * Syntax Plugins haben direkten Zugriff auf den Renderer     * Syntax Plugins haben direkten Zugriff auf den Renderer
     * Syntax Plugins können verschiedene Renderer unterstützen     * Syntax Plugins können verschiedene Renderer unterstützen
 +    * Syntax nutzt Regular Expressions (keine capture groups!)
 +    * http://www.regular-expressions.info/
  
 ---- ----
Line 192: Line 198:
   * simples substition plugin   * simples substition plugin
   * block mode   * block mode
 +  * sortmode 155 - good middle ground, before most of the other syntax
 +  * %%\{\{kitty \d \d\}\}%%
   * placekitten.com bild ausgeben   * placekitten.com bild ausgeben
  
Line 215: Line 223:
  
   * Option zum Umschalten zwischen grayscale und farbe implementieren   * Option zum Umschalten zwischen grayscale und farbe implementieren
 +  * placekitten.com/g/20/20
 ===== Adding Styles ===== ===== Adding Styles =====
  
Line 290: Line 298:
   * Anpassung der Syntax - keine unterstützung der alten syntax, ''.+?''   * Anpassung der Syntax - keine unterstützung der alten syntax, ''.+?''
   * simples schema (name,width,height) und insertion von einigen Katzennamen   * simples schema (name,width,height) und insertion von einigen Katzennamen
-  * sqlite direkt im handler initialisieren+  * <code sql>CREATE TABLE kittens ( 
 +    name PRIMARY KEY, 
 +    width  INT, 
 +    height INT 
 +);</code> 
 +  * <code php>public static function getDB() { 
 +        /** @var helper_plugin_sqlite $sqlite */ 
 +        $sqlite = plugin_load('helper', 'sqlite'); 
 +        $sqlite->init('kitty', __DIR__.'/db/'); 
 +        return $sqlite; 
 +    }</code>
   * übergeben der gefundenen width,height an den bisherigen renderer   * übergeben der gefundenen width,height an den bisherigen renderer
  
Line 324: Line 342:
   * PHP's Duck-Typing ermöglicht Angriffe die ihr nicht vorhergesehen habt   * PHP's Duck-Typing ermöglicht Angriffe die ihr nicht vorhergesehen habt
     * ihr erwartet ein Array, aber bekommt einen String oder umgekehrt     * ihr erwartet ein Array, aber bekommt einen String oder umgekehrt
-  * DokuWiki hat eine globales ''$INPUT'' object für den Zugriff auf request Variablen+  * DokuWiki hat ein globales ''$INPUT'' object für den Zugriff auf request Variablen
   * ''%%$INPUT->post->str('foo');%%'' gibt **immer** einen String zurück   * ''%%$INPUT->post->str('foo');%%'' gibt **immer** einen String zurück
   * https://www.dokuwiki.org/devel:request_vars   * https://www.dokuwiki.org/devel:request_vars
Line 346: Line 364:
   * msg("Inserting $name")   * msg("Inserting $name")
   * kein CSRF token check   * kein CSRF token check
-  * vulnerabilities zeigen+  * vulnerabilities zeigen (XSS wird von chrome abgefangen)
   * fixen   * fixen
  
Line 357: Line 375:
 ===== Learn more ===== ===== Learn more =====
  
-  * https://www.dokuwiki.org/development +  * https://www.dokuwiki.org/development -- Development Manual 
-  * https://www.dokuwiki.org/mailinglist +  * https://www.dokuwiki.org/mailinglist -- Mailingliste hilft bei Fragen 
-  * http://php.net/manual/en/index.php+  * https://xref.dokuwiki.org/ -- DokuWiki source code cross-reference 
 +  * http://stackoverflow.com/questions/tagged/dokuwiki -- StackOverflow 
 +  * http://php.net/manual/en/index.php -- PHP Dokumentation 
 +  * http://notes.splitbrain.org/s5:dwplugins -- Folien
  
  
s5/dwplugins.txt · Last modified: 2016/10/31 12:50 by andi