Php,使用gzcompress防止mysql注入


php, preventing mysql injection by using gzcompress?

是否有可能使用gzcompress(以及从数据库中检索后的gzuncompress)函数来防止mysql注入?或者有什么原因导致这行不通?还是说这根本就不是一个好主意?

这是个坏主意,因为

  • 理论上,可能存在一个数据序列,当压缩时,会导致SQL注入或简单地中断查询

  • gz压缩数据不能正确索引和搜索-你将有一个充满乱码字符的数据库

  • gzcompression计算开销大

在将数据输入数据库之前,总是使用库(如mysql(i)_real_escape_string())的字符串转义方法或参数化查询对数据进行净化。

要防止SQL注入攻击,请使用PDO的参数化查询

SQL注入可以通过两种方法中的一种来防止。您可以使用参数化查询,也可以在构建SQL语句时正确地清理值。

现在,您的建议可能会阻止恶意的注入数据库,但这并不能消除将SQL语法错误(有效的SQL注入)引入SQL语句的可能性。

此外,通过使用压缩函数,它将消除不通过解压缩来查看或搜索数据库内容的可能性。

这是一种避免SQL注入的新方法,但会给您带来比它实际解决的更多的问题。你真的需要坚持那些行之有效的解决方案。

    OWASP - SQL注入
  • Steve Friedl的Unixwiz.net技术提示- SQL注入攻击示例
  • MSDN - SQL注入