首页 >数据库 >mysql教程 >MySQLi 的'要么死”:安全风险还是必要之恶?

MySQLi 的'要么死”:安全风险还是必要之恶?

DDD
DDD原创
2025-01-03 06:17:08787浏览

MySQLi's `or die`: Security Risk or Necessary Evil?

你真的需要 MySQLi 吗?

使用 MySQLi 查询是常见的做法,如下面的代码所示:

$update_result = mysqli_query( $link , $sql_update_login ) or die ('Unable to execute query. '. mysqli_error($link));

但是,这样做也有缺点方法:

  • 安全风险:模具可以向攻击者泄露敏感的系统信息。
  • 用户混淆:错误消息可能会混淆非技术用户。
  • 执行不完整: die 停止脚本过早地导致用户没有友好的界面。
  • 缺乏错误位置: die 没有提供错误发生位置的指示。

而不是手动检查错误,考虑配置 MySQLi 在错误时抛出异常:

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

这样,可以编写任何 mysqli 命令,而无需need for or die:

$result = mysqli_query($link, $sql);

如果出现错误,将抛出异常,并提供有关问题的详细信息。

为了更彻底的生产就绪方法, PHP 中统一、高效的错误报告,请参阅 PHP 错误报告文章。

以上是MySQLi 的'要么死”:安全风险还是必要之恶?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn