2010-11-18 10 views
0

私はエンドユーザーがオンラインでビューテンプレートを編集できるようにしたいので、ビューページに明示的にプッシュするオブジェクトだけがアクセス可能になるように、安全であるか「刑務所」でなければなりません。Djangoのテンプレートマークアップは、レールの液体テンプレートのようなエンドユーザの編集に安全です。

つまり、私はなどなど、エンドユーザーは、Pythonのコードを書くことができるようにしたい、または私の接続文字列情報を把握していない

は、使用法のこのタイプのために安全な景色のためのDjangoのテンプレートマークアップのですか?

答えて

1

私が知る限り、Djangoテンプレートはこの種のコードにとって安全です。

テンプレートで実行できる単純なループ/ブランチを超える唯一の種類のロジックは、テンプレートタグまたはフィルタとして登録されているものだけです。 TTまたはフィルタは、バックエンドコードを介してのみ登録することができます。

ここでは、テンプレートタグとフィルタのリストを見ることができます:http://docs.djangoproject.com/en/dev/ref/templates/builtins/?from=olddocsちょうど文字列や日付などに取り組む

乾杯

EDITのほとんどは:あなたは間違いなく設定がISNオブジェクトことを確認しますテンプレートのコンテキストで使用できません。

1

Djangoテンプレートはほとんどの場合安全ですが、これはテンプレートコンテキストに公開されたものに基づいています。

最大の問題は、すべてのメソッドが渡されるため、オブジェクトをテンプレートに公開することです。これは、テンプレートに渡される最も一般的なオブジェクトであり、最も脆弱なQuerySetsで特に当てはまります。

あなたは私が何ができる

articles = Articles.objects.all() 

テンプレートにビューから物品を渡すと、次の

{% for article in articles %} 
    {{ article.delete }} 
{% endfor %} 
関連する問題