转义字符串是否应该“未转义”(MySQL,Node.js)?

时间:2013-10-04 17:37:04

标签: mysql string node.js escaping

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

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

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

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

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

1 个答案:

答案 0 :(得分:4)

  

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

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

  

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

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

  

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

你正在逃避你的字符串两次