3

可能重复:
为什么我不应该在 PHP 中使用 mysql_* 函数?

我正在考虑在我的下一个 PHP 项目中使用 Justin Vincent 的ezSQL,我注意到它在后台使用mysql_connect。我知道不建议再使用mysql_*PHP 中的函数了。我已经看到相当多的网站通过如下代码受到 SQL 注入攻击:

<?php mysql_qyery("SELECT * FROM my_table WHERE id = " . $_GET['id']); ?>

我知道 PDO 支持prepared statements,但您不必被迫准备您的语句,因此您仍然可以编写类似的不安全查询。

我想知道如果我使用像exSQL这样在执行查询之前处理转义数据mysql_*的库,我应该注意的函数是否存在任何内在的安全漏洞?

编辑:我不是在问我是否应该使用 PDO/mysqli 而不是 mysql 扩展,或者在未来的 PHP 版本中是否会删除 mysql 扩展。这两个问题的答案都可以在 PHP 手册和其他地方找到。但是,对于不鼓励使用 mysql 扩展的原因,缺乏现成的文档。显而易见,PHP 手册对以下问题的回答是:“为什么不鼓励使用我使用了 10 多年的 MySQL 扩展 (ext/mysql)?它是否已被弃用?我改用什么?我该如何迁移?” 实际上并没有回答为什么不鼓励它。

对于使用仍然依赖旧 mysql 扩展的库的开发人员来说,这是一个问题。仅仅因为不再支持该扩展并不意味着这是一个“无关紧要”的问题,因为仍然有很多库使用旧扩展。

4

1 回答 1

2

这两个资源应该可以帮助您:

MySQLi 相对于 MySQL 的优势

http://php.net/manual/en/mysqli.overview.php

如果没有,请在 Google 上搜索更多信息,因为这不是一个真正的问题。

于 2012-11-05T17:01:42.337 回答