【问题标题】:Should escaped strings be "unescaped" (MySQL, Node.js)?转义字符串是否应该“未转义”(MySQL、Node.js)?
【发布时间】:2013-10-04 17:37:04
【问题描述】:

我正在使用 felixge 的 MySQL 节点驱动程序。遵循文档

https://github.com/felixge/node-mysql#escaping-query-values

字符串应该在 传递到 MySQL 之前转义以避免注入攻击。

我的问题是:从 MySQL 加载数据之后 是否应该以某种方式“未转义”?

目前,我遇到了数据完整性问题:我从一个包含换行符的字符串开始。 (使用console.log(string) 打印会在控制台中显示换行符)。转义字符串后,将其保存到 MySQL 数据库中。但是,在将字符串加载回内存后,console.log(string) 会显示转义码 \n 而不是换行符。

【问题讨论】:

    标签: mysql string node.js escaping


    【解决方案1】:

    在传入MySQL之前避免注入攻击。

    这个说法是错误的。
    首先,由于语法规则,字符串应该被转义,而不是任何注入。 其次,我希望他们也有一些非字符串的秘诀。

    转义字符串应该“未转义”(MySQL)

    没有。 转义是针对查询,而不是数据库。

    显示转义码 \n 而不是换行符。

    然后您将两次转义字符串

    【讨论】:

    • 谢谢!接得好。我有一个额外的util.inspect,它在打印结果之前应用了额外的转义码。这与 MySQL 无关。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-11
    • 2017-07-07
    • 1970-01-01
    • 1970-01-01
    • 2014-06-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多