如果 PDO 和 mysqli 不可用,使用 mysql_* 函数是否安全?

Abu*_*kar 5 php mysql mysqli pdo sql-injection

我在共享主机上托管了一个网站。他们安装了 php 5.2.13。

我知道 SQL 注入的漏洞,我想阻止它。

所以我想使用 PDO 或 mysqli 来防止它。

但是问题是我phpinfo();以前查看宿主环境php设置信息的时候,
发现PDO没有mysql驱动,里面也不支持mysqli。

所以我想知道使用旧的 mysql_* 函数(以及类似的函数mysql_real_escape_string)是否安全。

我在 SO 上看过这个,但对我没有多大帮助。 当 mysqli 和 PDO 不可用时,准备好的语句可能吗?

更新:

我忘了提到大多数查询都很简单。没有使用表单,因此不会使用用户输入进行查询。所有查询都将使用必要的参数进行硬编码,并且一旦设置就不会更改。

Bar*_*mar 1

如果您真的非常严格地始终使用mysql_real_escape_string()所有用户提供的输入,那么我认为您应该免受任何 SQL 注入的威胁,准备好的语句可以保护您免受攻击。

你在这方面有多完美?我敢打赌大多数缓冲区溢出漏洞都是由那些认为自己擅长检查输入的程序员创建的......