それにも拘わらず、SQLインジェクションを排除するためには一般的にbindparam
が使われているようです。しかし、どのような状況での代わりにbindparam
を使用する必要がありますか?SQLインジェクションを防止するためにはどのような対策が必要ですか?Sqlalchemy bindparamの代わりにliteral_columnを使うべきですか?
0
A
答えて
0
literal_column
は、列名をパラメータ化できないため(クエリ自体の一部であるため)、パラメータ(値)ではなく、列のリテラル名として使用することを意図しています。 値をクエリに含めるには、通常はliteral_column
を使用しないでください。列名のみです。列名の入力を受け入れる場合は、それらの名前をホワイトリストに追加する必要があります。
ただし、SQLAlchemyで直接サポートされていない複雑な式を出力したい場合があります。literal_column
では、基本的に自由形式のテキストをクエリに入れることができます。このような場合は、ユーザーが入力した式の一部(値など)が引き続きバインドパラメータによって渡されるようにする必要があります。
関連する問題
- 1. sscanfの代わりに何を使うべきですか?
- 2. VBAの代わりにPythonを使うべきですか?
- 3. isinstance()の代わりに何を使うべきですか
- 4. LoadWithPartialName()の代わりに何を使うべきですか?
- 5. セッションの代わりに何を使うべきですか?
- 6. Qt:QMatrixの代わりにどのクラスを行列に使うべきですか?
- 7. Perlでprintfの代わりに何を使うべきですか?
- 8. MongoDBのJoinの代わりに何を使うべきですか
- 9. Python:いつos.popenの代わりにsubprocess.Popenを使うべきですか?
- 10. 辞書の代わりにいつnamedtupleを使うべきですか?
- 11. なぜjqueryの代わりにreactjsを使うべきですか?
- 12. なぜIPC/Simple websocketの代わりにgRPCを使うべきですか?
- 13. いつSQLiteの代わりにNSKeyedArchiverを使うべきですか?
- 14. IDプライマリキーの代わりにプライマリキーを使用できますか?
- 15. エレメント "align"は時代遅れか非標準です:代わりに何を使うべきですか?
- 16. SqlAlchemy:リスト内の値の代わりにすべて一致するフィルタ?
- 17. オブジェクトの代わりにsqlalchemyの結果を出力します
- 18. SQLAlchemy with Postgres:結果の代わりにJSONElementを返すプロパティ
- 19. datetimeオブジェクトの代わりに文字列を返すSQLAlchemy
- 20. data.tableを作成するのに、data.table()の代わりにsetDT()を使うべきですか?
- 21. できるだけJSを避け、代わりにCSSを使うべきですか?
- 22. git pullの代わりに何を使うのですか
- 23. Djangoの多くのフィールドの代わりに別のテーブルを使うべきでしょうか
- 24. GETの代わりにオブジェクトを使う
- 25. pseqの代わりにseqを使用できますか?
- 26. WPFブラウザアプリケーションをASP.NETの代わりに使用できますか?
- 27. eglPresentationTimeANDROID():android.openglの代わりにmicroedition.khronosを使用できますか?
- 28. コレクションビューの代わりにボタンを使用できますか?
- 29. Solrをキャッシュの代わりに使用できますか?
- 30. WebSocketの代わりにWebRTCを使用できますか?