12

生のテキストを処理する Django のフォーム コードでは、フォーム入力のサニタイズは見られません。Django は、データベースに入るときにユーザー入力が確実にサニタイズされるようにするにはどうすればよいですか? SQLインジェクションなどを防ぐためにこれを行うのですか?

4

1 に答える 1

23

ユーザー入力は、データベース ドライバーによって自動的にサニタイズされます。

明示的なユーザー入力のサニタイズは、SQL コマンドと含めようとしているデータの両方を含む単一の文字列を組み立てようとしている場合にのみ必要です。Python DBAPI を適切に使用すると、コマンドとデータが完全に分離されます。プログラマーは、その機能を適切に使用している限り、SQL インジェクションについて心配する必要はありません。そして、Django はデフォルトでその機能を使用するので、二重に心配する必要はありません。

編集: XSS は別の問題です。@renab のコメントとhttps://docs.djangoproject.com/en/dev/topics/security/#cross-site-scripting-xss-protectionも参照してください。

于 2012-11-26T22:15:58.537 に答える