human
Djangoフレームワークを備えたWebアプリを書いています。ユーザー向けのログイン関数を書きました。最も効率的な方法でSQL注入から入力を保護するにはどうすればよいですか？
gpt
Djangoはここでカバーしています。
生のユーザー入力をSQLクエリに挿入しないでください。常にクエリパラメーターを使用してください。Djangoはこれを非常に簡単にします。
user.objects.filter（username = username）＃危険！

user.objects.filter（username = username）＃safe、usernameはパラメーターです

だからあなたの見解では：
user.objects.get（username = request.post ['username']）＃危険
user.objects.get（username = request.post.get（ 'username'））＃safe

Djangoはユーザー名を自動的にエスケープし、SQLクエリのパラメーターとして使用して安全にします。
要するに、常にDjangoにSQLクエリを構築させ、生のユーザー入力を挿入しないでください。あなたがそうする限り、あなたはSQLインジェクションから安全になります。
human
request.post ['username]とrequest.post.get（' username '）の違いは何ですか？
gpt
request.post.post ['username]とrequest.post.get（' username '）の違いは、前者がrequest.post dictionaryの「username」キーの値にアクセスするために使用されることです。[ユーザー名]キーの値を安全に取得します。キーがrequest.postディクショナリにない場合は、オプションのデフォルト値を使用します。キーが存在しない場合、前者はキーエラーを上げますが、後者はキーエラーを上げません。
human
ホラ、ケル・エスタ？