转义输出是否会以任何方式阻止SQL注入?

时间:2014-05-17 10:08:34

标签: php sql security output sql-injection

我正在准备Zend PHP 5.5认证,我在学习指南中发现了一个似乎有错误答案的问题。 我只是不明白 - 他们的问题或答案中是否有错误,或者是否以任何方式逃避输出都会阻止SQL注入?

我在网上搜索但我找不到任何证明这一点的信息。

如果转义输出确实可以防止SQL注入,那么有人能解释一下究竟是什么吗? 如果你能举一个例子,那将会很棒。

非常感谢。

enter image description here

编辑:

我的问题不是关于如何防止SQL注入,但是如果输出转义以任何方式阻止SQL注入,那么请不要将我的问题标记为重复。 重复的问题没有给我任何答案。

2 个答案:

答案 0 :(得分:1)

  

我的问题不是关于如何防止SQL注入,但是如果输出转义以任何方式阻止SQL注入,那么请不要将我的问题标记为重复。重复的问题没有给我任何答案。

好的,你问题的答案是“不”。另见:

如果您在处理注入的查询后转出输出并不重要,如果我可以将恶意软件写入您的文件系统并直接访问它。

学习指南错了。

答案 1 :(得分:0)

我认为这只是一个解释问题:如果您将术语输出解释为'数据,这些数据会留下某个系统/进程/组件/功能'和将SQL转义作为'*_escape_string或类似函数应用于放入SQL代码的值',然后,是,输出转义可以帮助保护您免受SQL注入。

请注意,它表示“可能帮助”,因为在某些情况下这些功能无效,最明显的是当字符串文字中没有使用转义值时。