C++以编程方式将字符串编码为字符串文字

标签 c++ string persistence libpqxx

我正在尝试将某些用户输入的文本保存到数据库中,我将如何对这些值进行编码?我是 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、替换等。

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

关于C++以编程方式将字符串编码为字符串文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25295488/

相关文章:

c++ - 为 ReadFile 提供有效回调的方法

c++ - 字符串流会忽略空格吗?

string - 字符串.Builder的内存使用情况

mapping - extbase 映射到现有表不起作用

c++ - 错误: ISO C++ forbids initialization in array new

c - 返回的字符串与 c 函数中的字符串不同

java - equals() 未按预期工作

sharepoint - 将文档存储在文件系统而不是 SharePoint 文档库中的数据库中

java - Entitymanager/持久化文件结构

c++ - 如果 header 位于预编译 header xcode 中,则找不到默认模板参数