gpt4 book ai didi

php - 为什么不反斜杠每个空格以防止 mysql 注入(inject)

转载 作者:行者123 更新时间:2023-12-01 00:04:53 31 4
gpt4 key购买 nike

我可能已经想知道这个问题几个月了,但我仍然不知道答案,除了可能的速度性能。长话短说,与其让所有这些 PDO 代码无处不在,不如在每个字符之间加上一个反斜杠?

$String = $_POST["attack"];   // SOME THING' OR 1 = 1 --
$String = fFilter( $String ); // \S\O\M\E\ \T\H\I\N\G\'\ \O\R\ \1\ \=\ \1\ \-\-

现在我已经有一段时间没有接触过这个 SQL 的东西了,所以我不能给出一个完美的例子,但基本上 sql 字符串应该是这样的 SELECT * FROM account WHERE id = '\S\O\M\E\\T\H\I\N\G\'\\O\R\\1\\=\\1\\-\-' 之类的东西看起来总是很安全,但我没有听说过有人使用它,甚至没有听说过为什么不用它。我总是看到诸如过滤 html 之类的东西不好,但我不明白为什么不过滤每个字符。因为任何攻击看起来都像 \a\t\t\a\c\k

最佳答案

因为在某些字符前放置一个反斜杠会完全改变它们的含义。例如,\t 是制表符,而不是 t,因此 \a\t\t\a\c\k 将被转换到:

a       ack

此类序列的完整列表在:

http://dev.mysql.com/doc/refman/5.5/en/string-literals.html

正如其他几个人提到的,使用参数化查询,而不是输入转义。

关于php - 为什么不反斜杠每个空格以防止 mysql 注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17960065/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com