php - 是否向普通用户显示 mysqli_errno 是否安全?

标签 php mysql security error-code

我想使用 mysqli_errno() 将 MySQL 错误号发送到一个页面,告诉用户 “此代码有错误,如果这种情况仍然存在,请将此代码发送给网站所有者,电子邮件地址为 email@example.com”。

我看过一个类,展示了如何将 mysqli_error() 消息抛出到错误页面,但我不希望用户看到描述性文本,而只看到代码。

这安全吗?

显示 MySQL 错误代码不会威胁我网站的安全吗?

我想从错误代码中受益来解决问题。您建议其他技术吗?

最佳答案

不要这样做。暴露服务器基础设施的详细信息是一个安全缺陷。如果攻击者知道您正在使用 mysql,他们可能会尝试利用 mysql。最好将此信息保密。

相反,您应该为您的客户端创建一个服务接口(interface),他们可以登录该接口(interface)来读取错误日志。您可以为每个错误生成一个唯一的 ID (guid),并将错误保存在由同一 guid 键入的数据库中。然后,您可以以某种方式将该 guid 返回给客户端(例如,作为 header )。您的客户端可以获取此信息并使用您的管理/错误服务在数据库中查询与该 ID 相关的错误。

我知道这听起来很复杂,但安全性确实很复杂。有一些方法可以简化这一过程——例如 COTS 工具,但它们基本上都遵循这种模式。

关于php - 是否向普通用户显示 mysqli_errno 是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42362008/

相关文章:

php - Octobercms YAML 选择

php - 浏览器关闭时更新数据库

php - 为什么会有 PATH_SEPARATOR 常量?

MySQL 在两个数据库之间共享表

php - 如何向 PHP/SQL 搜索脚本添加拼写建议

django - 如何保护 Gmail 的应用程序特定密码

javascript - 在 PHP 和 Ajax 中使用 Json 传递值

javascript - 在 Laravel 中将 JSON 从 Controller 传输到 AngularJS

Javascript 混淆 AJAX 代码

c# - 在 sql 和 web 应用程序之间发送安全密码的最佳实践?