2010-09-04 8 views

risposta

0

La suite Django (tra molte altre) ha uno templating language.

+1

sono sicuri per gli utenti finali da modificare? – Blankman

+0

È "sicuro" come (e quasi sintatticamente identico a) liquidmarkup. Se questa è la tua definizione, allora si. – msw

+0

È * non *: "Il modello di sistema non è sicuro contro autori di modelli non attendibili." (Secondo https://docs.djangoproject.com/en/dev/topics/templates/). Liquid e Jinja2 forniscono sandboxing, ma i template di Django no. – abstraktor

1

Pochi collegamenti a alcuni motori di template in Python. Spero sia questo che intendevi con la tua domanda.

http://jinja.pocoo.org/2/
http://docs.djangoproject.com/en/dev/topics/templates/
http://genshi.edgewall.org/
http://www.makotemplates.org/
http://www.cheetahtemplate.org/

+3

L'OP vuole un motore che: _that gli utenti finali possono tranquillamente modificare_ - ad es. motore sicuro (in modalità sandbox). Fornire ed elencare "alcuni modelli di python" è inutile, inutile e confuso ... (Commentando, perché sto solo cercando lo stesso). – jm666

2

La modalità sandbox Jinja2, http://jinja.pocoo.org/docs/sandbox/, sostiene di consentire l'esecuzione sicura di modelli attendibili. Non ho rivisto il codice, ma in una certa misura, la sicurezza dipende dalla difensività della codifica. La configurazione di default della sandbox consente alcune cose che possono essere sorprendenti, come la modifica di oggetti mutabili, quindi devi stare attento.

0

Django Template Language (DTL) non fornisce sandboxing, quindi non è necessario utilizzarlo per i modelli forniti dall'utente.

Django 1.11 Documentation stati:

Il sistema modello non è sicuro contro gli autori del modello non attendibili. Ad esempio, un sito non dovrebbe consentire agli utenti di fornire i propri modelli, poiché gli autori di modelli possono eseguire operazioni come eseguire attacchi XSS e accedere a proprietà di variabili di modello che potrebbero contenere informazioni riservate.

Problemi correlati