2016-11-08 4 views
2

クッキー値、ルート内の可変部分、クエリ引数などのデータは、安全でないものとして扱われ、特定の方法で処理されるべきですか? Flaskはすでに入力データをエスケープしているので、関数test(input_data)に渡すのは安全ですか?リクエストデータは既にFlaskによってサニタイズされていますか?

+0

これは、コード実行を引き起こす可能性のあるコード(バイトコードまたはsthとして渡されたコード)があるかどうかわからないため、unicode/intが十分であれば、 intが必要です(ルール "Do not trust user input")。 「安全」とは、適切にエスケープ/サニタイズされているため、さらなる処理で安全です。 – LAdas

+0

これはサニタイズされていませんが、通常は問題ではありません。渡されたものには「exec」を使用しないでください。また、raw SQL文では、入力のタイプと同じものを使用してください。 –

+0

この質問に具体的に答えても意味がありません。無限にあります。 – davidism

答えて

3

Flaskは、生のHTTPリクエストから解析するだけでなく、データを要求することもありません。任意の関数が持つ制約を知る方法がありません。制約をチェックするのはあなた次第です。すべてのデータはデフォルトで文字列になります。 evalまたはexecは使用しないでください。 SQLインジェクションを避けるには、データベースドライバのパラメータ化されたクエリを使用します。 Jinjaでテンプレートをレンダリングすると、デフォルトでHTMLで使用するためにデータがエスケープされます。

関連する問題