6

私はこれら3つのデータベースライブラリすべてを調べてきましたが、SQLインジェクションを防ぐために何かできるのだろうかと思います。私はそれらの1つの上にlibを構築する可能性が最も高く、インジェクションは私が1つを選ぶ際の最大の関心事です。誰か知ってる?

4

2 に答える 2

5

OTLライブラリの作成者と一緒に入手しました。「OTLDialect」で記述されたパラメーター化されたクエリは、私が呼んでいるように、パラメーター化されたクエリとして基盤となるDBAPIに渡されます。したがって、パラメーター化されたクエリは、基盤となるAPIが作成するのと同じくらいインジェクションに対して安全です。

彼の完全な電子メールの説明については、 この他のSO投稿にアクセスしてください。C++ OTL SQLデータベースライブラリは、内部でパラメータ化されたクエリを使用していますか、それとも文字列連結ですか?

編集:SOCIはsoci::use式を使用します。これは通常のバインディングメカニズムに変換されますが、より多くの構文糖衣が使用されます。例:db_session << "insert into table(column) values(:value_placeholder)", use(user_input,"value_placeholder");

DTLに関する限り、基盤となるAPIに関連するパラメーターでDTLがどのように機能するかはわかりません。

于 2010-06-30T18:57:53.507 に答える
1

一般に、このレベルのライブラリは、指示どおりに実行する必要があります。SQLインジェクションを防ぐには、ユーザーから提供された文字列を確認し、それらをサニタイズした後でのみライブラリに渡します。

于 2010-06-25T14:16:24.443 に答える