首頁 >資料庫 >mysql教程 >MySQLi 的「要嘛死」:安全風險還是必要之惡?

MySQLi 的「要嘛死」:安全風險還是必要之惡?

DDD
DDD原創
2025-01-03 06:17:08750瀏覽

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