我正在准备Zend PHP 5.5认证,我在学习指南中发现了一个似乎有错误答案的问题。 我只是不明白 - 他们的问题或答案中是否有错误,或者是否以任何方式逃避输出都会阻止SQL注入?
我在网上搜索但我找不到任何证明这一点的信息。
如果转义输出确实可以防止SQL注入,那么有人能解释一下究竟是什么吗? 如果你能举一个例子,那将会很棒。
非常感谢。
编辑:
我的问题不是关于如何防止SQL注入,但是如果输出转义以任何方式阻止SQL注入,那么请不要将我的问题标记为重复。 重复的问题没有给我任何答案。
答案 0 :(得分:1)
我的问题不是关于如何防止SQL注入,但是如果输出转义以任何方式阻止SQL注入,那么请不要将我的问题标记为重复。重复的问题没有给我任何答案。
好的,你问题的答案是“不”。另见:
如果您在处理注入的查询后转出输出并不重要,如果我可以将恶意软件写入您的文件系统并直接访问它。
学习指南错了。
答案 1 :(得分:0)
我认为这只是一个解释问题:如果您将术语输出解释为'数据,这些数据会留下某个系统/进程/组件/功能'和将SQL转义作为'将*_escape_string
或类似函数应用于放入SQL代码的值',然后,是,输出转义可以帮助保护您免受SQL注入。
请注意,它表示“可能帮助”,因为在某些情况下这些功能无效,最明显的是当字符串文字中没有使用转义值时。