1

一部のユーザーからデータベースに入力されたテキストを永続化しようとしていますが、これらの値をどのようにエンコードしますか? 私は C/C++ の初心者で、google fu のスキルに問題があります..

私はlibpqxxを使用していて、次のようなことをしようとしています

std::string sql = "insert into chat values (nextval('chat_seq'), '" + userInput + "');";
work.exec(sql);

しかし、userInputが次のような場合

I'm doing just fine

私の挿入は失敗します。ご協力いただきありがとうございます。

4

1 に答える 1

0

コメントで述べたように、SQL インジェクションを調べてください。そこには大量のリソースがあります。

https://www.owasp.org/index.php/SQL_Injection_Prevention_Cheat_Sheet http://www.veracode.com/security/sql-injection

インジェクションの原因となる文字を特定してエスケープするか、文字を削除/置換することから始めることをお勧めします。

userInput が文字列であることを確認し、substr、置換などの文字列操作を行うために、すべての便利な std 文字列ビットにアクセスできるようにします。

参照: http://www.cplusplus.com/reference/string/string/

于 2014-08-13T20:57:32.943 に答える