0

我对 mysqli 相当陌生(不是 mysql!),我正在更新一个 current-mysql-function,它保护一个字符串(或一个带有字符串的(递归)数组)以进行基本卫生。

php.net mysqli::real_escape_string() 手册对该字符集有非常明确的警告。我已经实现了这一点。

我该如何测试这个?我找不到我要查找的信息。我想我正在寻找某些要输入的字符串,从而导致不安全的结果,并且结果被认为是保存。

我的意思不是“在 ' <- 那些单引号中添加斜杠”。我正在寻找一些更高级的技巧或漏洞。

我也不是在寻找准备好的陈述。这些很棒,我很想使用它们,但目前不是一个选项,因为更新我是一个旧系统尽可能快,准备好的语句在这个时间点不是一个选项。我将来会添加这些。

4

1 回答 1

2

这是您正在寻找的代码,我相信。只需将mysql更改为mysqli。

另请注意

  • 此功能不是“保护”字符串,而是格式化它们。意味着无论您是否将其视为“危险”,都必须处理要进入查询的每个字符串。
  • 此函数只能用于格式化 SQL字符串文字。它对所有其他查询部分完全没用。
  • 此函数不应在应用程序代码中使用,而应支持模拟的预处理语句

无论如何,如果您的数据库编码是传统的utf-8,那么根本没有必要为编码而烦恼。“明确警告”实际上仅与一些边缘且极少使用的编码有关。

于 2013-08-02T13:45:15.613 回答