Le but de l’article n’est pas d’expliquer comment installer Owncloud, car grâce à la moulinette de Yunohost c’est une opération extrêmement simple mais plutôt orienté sécurité et débogage.
Yunohost : installer un Owncloud
Comme dit en introduction, l’installation est une opération très simple qui peut se faire soit via l’interface d’administration web ou en ligne de commande via la moulinette.
Pour l’exemple, je vais utiliser la moulinette :
yunohost app install owncloud
Choisir un domaine pour ownCloud: vps-03.memo-linux.com Choisir le chemin d'accès (par défaut : /owncloud): Choisir une administrateur pour Owncloud (doit être connu de Yunohost): fred Accès ou pas au répertoire personnelle sur le serveur (/home/$user) ? [0 | 1] (default: 0):
Déboguer Owncloud
Ici, quand j’écris « déboguer » je veux parler de modifier des fichiers pour mettre à jour les solutions misent en places par Yunohost pour la sécurité de Owncloud. Une image sera plus simple de compréhension :
J’ai obtenu ces informations grâce à l’outil de développent web de Firefox (disponible aussi dans d’autres navigateurs).
Je vais lister les 5 problèmes rencontrer et proposer une solution.
- Content Security Policy: La directive « frame-src » est obsolète. Veuillez utiliser la directive « child-src » à la place.
Le message est clair, la directive frame-src est obsolète et doit être remplacer par child-src. Cependant, Yunohost utilise les deux directive, nous allons simplement mettre en commentaire la directive frame-src. Pour ce faire, éditer le fichier /var/www/owncloud/lib/public/appframework/http/emptycontentsecuritypolicy.php
:
nano /var/www/owncloud/lib/public/appframework/http/emptycontentsecuritypolicy.php
Aller à la ligne 373 et commenter comme suit :
Cette ligne nous précise que le script jquery.min.js utilise une directive dépréciée et nous propose la solution.
Éditer le fichier /var/www/owncloud/core/vendor/jquery/jquery.min.js
:
nano /var/www/owncloud/core/vendor/jquery/jquery.min.js
Et remplacer à la 2ème ligne //@ par //# :
/*! jQuery v1.10.2 | (c) 2005, 2013 jQuery Foundation, Inc. | jquery.org/license //# sourceMappingURL=jquery.min.map */ ****
Personnellement, la ressource qui est bloquée par le CSP ne me dérange pas car cela n’impacte pas la bonne utilisation de Owncloud.
Encore une directive obsolète window.controllers qui doit na doit pas être utilisée. Mais dans ce cas, ce n’est pas lié à Yunohost mais à l’application Text Editor de Owncloud.
Deux solutions : désactiver l’application ou contacter le développeur de l’application pour corriger cette erreur.
Avec la commande sed l’occurrence getPreventDefault sera remplacée par defaultPrevented dans le fichier /var/www/owncloud/core/vendor/jquery/jquery.min.js
:
sed -i -e "s/getPreventDefault/defaultPrevented/g" /var/www/owncloud/core/vendor/jquery/jquery.min.js
systemctl reload nginx
Bonjour, Fred …
Merci pour l’article.
Concernant CSP, l’usage des mots-clés ‘unsafe-eval’ et ‘unsafe-inline’ sont aussi à proscrire … Nicolas Hoffman a écrit un excellent article sur ce propos, entre autres …
https://www.nicolas-hoffmann.net/source/1697-Obtenir-une-bonne-note-sur-Mozilla-Observatory-HTTPS-CSP-SRI-CORS-HSTS-HPKP-etc.html
Voili, voilou
Bonjour CSP,
je l’ai lu cet article et je suis entièrement d’accord avec toi mais là pour le coup faut revoir le code de Owncloud et de Yunohost… Concernant Yunohost, j’en ai parlé sur le forum : https://forum.yunohost.org/t/content-security-policy/1915