【发布时间】:2010-09-21 14:40:40
【问题描述】:
我使用 smarty 和 mysql_real_escape_string() 进行用户输入,
当我用 ' 或 " 插入一些代码,并在 phpmyadmin 中查找
它显示时没有反斜杠。
当我从数据库获取记录时,我也没有反斜杠。 但是当我只是传递转义字符串而不插入数据库时 它是反斜杠的。
不应该添加斜线,插入它们然后我会 当我输出时剥离它们? 还是我错过了什么?
【问题讨论】:
我使用 smarty 和 mysql_real_escape_string() 进行用户输入,
当我用 ' 或 " 插入一些代码,并在 phpmyadmin 中查找
它显示时没有反斜杠。
当我从数据库获取记录时,我也没有反斜杠。 但是当我只是传递转义字符串而不插入数据库时 它是反斜杠的。
不应该添加斜线,插入它们然后我会 当我输出时剥离它们? 还是我错过了什么?
【问题讨论】:
你错过了 - 用反斜杠转义是为了确保查询没有格式错误,例如像这样的东西肯定会破坏并可能冒 SQL 注入的风险:
insert into table values ('whatever 'this' is')
表格中不会保存任何内容,而这个:
insert into table values ('whatever \'this\' is')
将在表中保存值“无论 'this' 是什么”。
【讨论】: