Cette page vous donne les différences entre la révision choisie et la version actuelle de la page.
|
linux:dokuwiki:secu [2011/01/16 11:32] matthieu [Sécuriser la racine] |
linux:dokuwiki:secu [2011/10/04 22:15] (Version actuelle) matthieu ancienne révision restaurée |
||
|---|---|---|---|
| Ligne 4: | Ligne 4: | ||
| Cette page détaille comment sécuriser les sections privées de [[linux:Dokuwiki]]. | Cette page détaille comment sécuriser les sections privées de [[linux:Dokuwiki]]. | ||
| - | :!: Dernière mise à jour pour la version 2010-11-07. | + | :!: Dernière mise à jour pour la version 2011-05-25a. |
| ===== Créer une section privée ===== | ===== Créer une section privée ===== | ||
| Ligne 28: | Ligne 28: | ||
| Les messages indiquant si l'interdiction d'accès ou inexistante de la page sont différents, il est donc possible de savoir si la page existe. | Les messages indiquant si l'interdiction d'accès ou inexistante de la page sont différents, il est donc possible de savoir si la page existe. | ||
| - | Si certain namespace sont cachés, pour masquer complètement leur existance, il faut bloquer l'accès à la racine "*" puis autoriser les pages et namespace publique manuellement. | + | Si certain namespace sont cachés, pour masquer complètement leur existence, il faut bloquer l'accès à la racine "*" puis autoriser les pages et namespace publique manuellement. |
| Par exemple : | Par exemple : | ||
| - | ^ page ^ group ^ rights ^ | + | ^ page ^ group ^ rights ^ |
| - | | * | @ALL | None | | + | | * | @ALL | None | |
| + | | start | @ALL | Read | | ||
| + | | sidebar | @ALL | Read | | ||
| + | | linux:* | @ALL | Read | | ||
| + | | en:* | @ALL | Read | | ||
| - | ===== Failles de sécurité ===== | + | |
| + | ===== Masquer complètement l'existence des pages non autorisées ===== | ||
| + | Les ACL permettent de rendre les pages inaccessibles mais ne masquent pas complètement leur existence.\\ | ||
| Cette section recense les failles de sécurité que j'ai détectée lorsque des sections privées sont utilisées et fournit un correctif. | Cette section recense les failles de sécurité que j'ai détectée lorsque des sections privées sont utilisées et fournit un correctif. | ||
| Ligne 56: | Ligne 62: | ||
| {{:linux:dokuwiki:doku_secu_1_4.png|}} | {{:linux:dokuwiki:doku_secu_1_4.png|}} | ||
| - | Le détail des problèmes est décrit dans les paragraphes suivants. | + | Détail des problèmes : |
| + | * Même si le contenu d'une page est bloqué, il est malgré tout possible de connaitre son titre si l'option "use_heading" est activée. | ||
| + | * Le breadcrumb (ou piste en français) indique les pages visitées, permet de connaitre si une page existe (les pages inexistantes ne sont pas ajoutées). | ||
| + | * Lorsqu'une page contient des liens vers d'autres pages, ceux-ci indiquent si la page existe même lorsque l'accès y est interdit.\\ | ||
| + | De plus si useheading est activé, le titre de la page est également indiqué. | ||
| + | |||
| + | :!: Attention, les pages générées sont cachées par dokuwiki, un utilisateur peut donc voir les liens si la page cachée a été générée pour utilisateur qui dispose des autorisations pour ces liens.\\ | ||
| + | Il faut donc éviter d'insérer dans des pages "publiques" des liens vers des pages "privées" ou désactiver le cache des pages. | ||
| + | |||
| + | Correctif : {{:linux:dokuwiki:dokuwiki_2011-05-25_secu1.patch|}} | ||
| + | <code> | ||
| + | :/opt/dokuwiki/inc# patch -p 1 < /root/dokuwiki_2011-05-25_secu1.patch | ||
| + | patching file common.php | ||
| + | patching file parser/xhtml.php | ||
| + | :/opt/dokuwiki/inc# | ||
| + | </code> | ||
| + | |||
| + | |||
| + | ==== Démo corrigée ==== | ||
| + | Voici les screenshots avec les patchs appliqués : | ||
| + | |||
| + | {{:linux:dokuwiki:doku_secu_2_1.png|}} | ||
| + | |||
| + | {{:linux:dokuwiki:doku_secu_2_2.png|}} | ||
| + | |||
| + | |||
| + | ==== Patchs pour les anciennes versions ==== | ||
| + | === 2008-05-05 === | ||
| + | Patch pour la version 2008-05-05: {{doku_hide-2008-05-05.patch}} | ||
| + | |||
| + | <code> | ||
| + | wiki:/opt/wiki# patch -p 1 < /root/doku_hide.patch | ||
| + | patching file inc/common.php | ||
| + | patching file inc/parser/xhtml.php | ||
| + | patching file inc/parserutils.php | ||
| + | patching file inc/template.php | ||
| + | wiki:/opt/wiki# | ||
| + | </code> | ||
| + | |||
| + | |||
| + | === 2009-02-14 === | ||
| + | Patch pour la version 2009-02-14: {{dokuwiki-2009-02-14_security.patch}} | ||
| + | |||
| + | <code> | ||
| + | wiki:/opt/wiki/inc# patch -p 1 < /root/doku_hide.patch | ||
| + | patching file common.php | ||
| + | patching file parser/xhtml.php | ||
| + | patching file parserutils.php | ||
| + | patching file template.php | ||
| + | wiki:/opt/wiki/inc# | ||
| + | </code> | ||
| + | |||
| + | === 2010-11-07 === | ||
| + | Patchs pour la version 2010-11-07. | ||
| - | ==== Affichage du titre des sections privées ==== | + | == Affichage du titre des sections privées == |
| Même si le contenu d'une page est bloqué, il est malgré tout possible de connaitre son titre si l'option "use_heading" est activée. | Même si le contenu d'une page est bloqué, il est malgré tout possible de connaitre son titre si l'option "use_heading" est activée. | ||
| Ligne 69: | Ligne 128: | ||
| - | ==== Le style utilisé dans youarehere indique si la page existe ==== | + | == Le style utilisé dans youarehere indique si la page existe == |
| Il est possible de distinguer si une page existe ou non en fonction du style utilisé dans "youarehere" (il s'agit du texte en haut à gauche en titre dans la page). | Il est possible de distinguer si une page existe ou non en fonction du style utilisé dans "youarehere" (il s'agit du texte en haut à gauche en titre dans la page). | ||
| Ligne 80: | Ligne 139: | ||
| </code> | </code> | ||
| - | ==== Le breadcrumb indique si la page existe ==== | + | == Le breadcrumb indique si la page existe == |
| Le breadcrumb (ou piste en français) indique les pages visitées, permet de connaitre si une page existe (les pages inexistantes ne sont pas ajoutées). | Le breadcrumb (ou piste en français) indique les pages visitées, permet de connaitre si une page existe (les pages inexistantes ne sont pas ajoutées). | ||
| Ligne 91: | Ligne 150: | ||
| </code> | </code> | ||
| - | ==== Les liens vers les pages indiquent si une page existe et en indique le titre ==== | + | == Les liens vers les pages indiquent si une page existe et en indique le titre == |
| Lorsqu'une page contient des liens vers d'autres pages, ceux-ci indiquent si la page existe même lorsque l'accès y est interdit.\\ | Lorsqu'une page contient des liens vers d'autres pages, ceux-ci indiquent si la page existe même lorsque l'accès y est interdit.\\ | ||
| De plus si useheading est activé, le titre de la page est également indiqué. | De plus si useheading est activé, le titre de la page est également indiqué. | ||
| Ligne 105: | Ligne 164: | ||
| :!: Attention, les pages générées sont cachées par dokuwiki, un utilisateur peut donc voir les liens si la page cachée a été générée pour utilisateur qui dispose des autorisations pour ces liens.\\ | :!: Attention, les pages générées sont cachées par dokuwiki, un utilisateur peut donc voir les liens si la page cachée a été générée pour utilisateur qui dispose des autorisations pour ces liens.\\ | ||
| Il faut donc éviter d'insérer dans des pages "publiques" des liens vers des pages "privées". | Il faut donc éviter d'insérer dans des pages "publiques" des liens vers des pages "privées". | ||
| - | |||
| - | ==== Démo corrigée ==== | ||
| - | Voici les screenshots avec les patchs appliqués : | ||
| - | |||
| - | {{:linux:dokuwiki:doku_secu_2_1.png|}} | ||
| - | |||
| - | {{:linux:dokuwiki:doku_secu_2_2.png|}} | ||
| - | |||
| - | |||
| - | ==== Patchs pour les anciennes versions ==== | ||
| - | === 2008-05-05 === | ||
| - | Patch pour la version 2008-05-05: {{doku_hide-2008-05-05.patch}} | ||
| - | |||
| - | <code> | ||
| - | wiki:/opt/wiki# patch -p 1 < /root/doku_hide.patch | ||
| - | patching file inc/common.php | ||
| - | patching file inc/parser/xhtml.php | ||
| - | patching file inc/parserutils.php | ||
| - | patching file inc/template.php | ||
| - | wiki:/opt/wiki# | ||
| - | </code> | ||
| - | |||
| - | |||
| - | === 2009-02-14 === | ||
| - | Patch pour la version 2009-02-14: {{dokuwiki-2009-02-14_security.patch}} | ||
| - | |||
| - | <code> | ||
| - | wiki:/opt/wiki/inc# patch -p 1 < /root/doku_hide.patch | ||
| - | patching file common.php | ||
| - | patching file parser/xhtml.php | ||
| - | patching file parserutils.php | ||
| - | patching file template.php | ||
| - | wiki:/opt/wiki/inc# | ||
| - | </code> | ||
| - | |||
| - | |||