我正在尝试将某些用户输入的文本保存到数据库中,我将如何对这些值进行编码?我是 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
我的插入会失败。感谢您的帮助。
最佳答案
如评论中所述,查找 SQL 注入(inject),上面有大量资源。
https://www.owasp.org/index.php/SQL_Injection_Prevention_Cheat_Sheet http://www.veracode.com/security/sql-injection
一个好的开始是识别导致注入(inject)的字符并转义它们或删除/替换这些字符。
确保 userInput 是一个字符串,并且您可以访问所有有用的 std 字符串位来进行字符串操作,例如 substr、替换等。
关于C++以编程方式将字符串编码为字符串文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25295488/