2011-02-10 7 views
2

djangoには、レールに液体が入っているように安全なユーザ編集可能なテンプレート言語がありますか?djangoには、レールに液体があるように安全なユーザ編集可能なテンプレート言語がありますか?

つまり、エンドユーザーはテンプレートコードをハックして危険なオブジェクトを何らかの形で出力し、ウェブサイトをハックすることはできません。

答えて

1

液体はDjangoテンプレート言語に由来しているので、答えは「はい」です。ユーザーが提出したテンプレートをレンダリングし、必要に応じて処理することができます。しかし、セキュリティは開発者が気にするべきものです。テンプレートツールは、ユーザーが自分の入力をサニタイズして検証しない限り、ユーザーが足で撃つことができるようにする場合、あなたを保護しません。ここで

は、いくつかの良い読み取り、次のとおりです。

http://www.djangobook.com/en/2.0/chapter04/

http://www.djangobook.com/en/2.0/chapter09/

http://loopj.com/2009/05/23/a-django-developers-views-on-rails/

+0

私の質問は、どうやって自分の足で自分を撃つのではないかと思いますか? – Blankman

2

テンプレート言語正しい方法を使用している場合:はい。

参照Djangoテンプレートタグやフィルタ:

例:

{{ evil_userinput }} 

これは、ユーザー入力を直接印刷します。

{{ evil_userinput|escape }} 

これはすべてのHTMLエンティティをエスケープするため、HTMLページに危険なコードを含めることはできません。

+0

理解してもエンドユーザーがテンプレートsytnax ...をWebエディタで編集しているかわかりません。 – Blankman

+0

全体のHTMLページまたはその一部ですか? – svenwltr

+0

なぜユーザーはそうするべきですか?ユーザーはHTMLコードのみを必要とするのか、テンプレートエンジンのフルパワーを必要としますか?原則としてあなたは保護することができます。質問はあなたが望むものです;-) – svenwltr

関連する問題