Permettre à l'utilisateur de choisir ou créer sa template

L'auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

Bonjour,

je suis entrain de développer un projet Django et je veux permettre à l'utilisateur de choisir une template parmi les proposées ou bien créer sa propre template et l'uploader.

je vais utiliser "jinja2" vu qu'il est simple et équiper de quelque mesure de sécurité (interdiction de l'execution de Python) et je vais permettre à l'utilisateur de stocker la template dans des fichiers.

Pour les fichiers, je vais créer un modèle de base avec deux fichiers obligatoires (pour l'instant), ex: "config.info" contient des infos sur la template (nom, auteur, version…), index.html.

Ou stocker les fichiers statiques (logo, bannières…) ?
Comment interdire l'utilisateur d’accéder à d'autres repertoires que celui du theme ?

N'hésitez pas à me faire part de vos remarques et vos précieux conseils ;)

Édité par taoufik07

+0 -0
Staff

C'est quand même super dangereux.

Kje

Je confirme : super dangereux. Si tes utilisateurs peuvent écrire eux-même des templates, je suppose que les utilisateurs peuvent se connecter sur ton site, tu as donc un système de membre. Tu as donc un système de connexion. N'importe qui peut donc écrire un template qui volera les cookies des autres membres pour se connecter à leur compte ou faire du phishing en utilisant directement ton site.

Je parle de JavaScript et d'autres trucs sur mon blog : https://draft.li/blog

+1 -0
Auteur du sujet

Yep :/
Et si pour chaque personne je crée un repertoire qui va contenir sa template et je l'interdis d’accéder aux autres repertoires. Est ce qu'il y aura des risques ?

Sinon quelle est la meilleur solution ?

+0 -0
Staff

Cette réponse a aidé l'auteur du sujet

L'idée des répertoires n'est pas possible. Les sous domaines ça pourrait peut-être marcher mais c'est très compliqué.

Imagine Alice et Jack. Alice possède alice.domain.com. Si Alice est connectée sur domain.com, quand elle visitera jack.domain.com jack pourra voler son cookie et utiliser son compte. Tu pourrais faire en sorte que personne ne peut se connecter sur domain.com. Comme ça Alice se connecte sur alice.domain.com, tu restreins ses cookies à alice.domain.com, et paf jack.domain.com ne peut pas lire les cookies posés par alice.domain.com. Par contre dans ce cas impossible de se connecter sur domain.com. Du coup tu peux réserver www.domain.com pour la connexion + création de nouveaux comptes. Mais tes utilisateurs devront alors se reconnecter sur leur propre sous-domaine. C'est pas idéal et ça reste risqué.

On recommande généralement de ne jamais avoir de sous-domaine auxquels tu ne fais pas confiance.

Prends par exemple GitHub. C'est pas des brêles niveau web et sécurité. C'est pour ça qu'ils hébergent pas les github pages sur github.com. Ils ont exprès mis ça sur github.io, comme ça le domaine est différent et donc ils ne risquent rien.

Tu peux lire ceci par exemple : http://security.stackexchange.com/questions/33851/protecting-against-cross-subdomain-cookie-attacks

Le seul moyen d'assurer la sécurité de tes utilisateurs, c'est d'avoir tonsite.com pour uploader les templates et gérer leurs compte, et d'avoir chaqueutilisateur.leurspages.com pour y accéder.

Édité par victor

Je parle de JavaScript et d'autres trucs sur mon blog : https://draft.li/blog

+2 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte