在控制台日志中返回 mysqli_error() 是否会给网站带来安全风险?
Does returning mysqli_error() in console log pose website a security risk?
我有一个简单的网站表单,可以通过它输入数据(名称、地址、密码,等等 - 这并不重要)。
我使用 jQuery ajax 调用将提交的数据发送到 PHP 文件,该文件依次验证数据并将其添加到数据库中。
在 ajax 结果中返回 mysqli_error()
是否会带来安全风险?例如,一条错误消息可能会在控制台日志中公开数据库名称或字段名称。
它在生产中是否可以接受,或者我应该将所有错误发送到带有 error_log()
的文件中。
是的,公开此信息会带来安全风险。这适用于所有 PHP 错误,而不仅仅是 mysqli 错误。这就是为什么您应该在生产中禁用 display_errors
。
使用 mysqli_error()
会带来额外的风险,因为您使用它的方式可能不遵守该指令。如果您的代码有任何 SQL 注入,暴露的错误是最重要的。它们不仅公开代码,还公开数据。
最好的办法就是永远不要使用这个功能。只需启用 automatic mysqli error reporting 并像对待任何其他 PHP 错误一样对待它们。即使在开发中,手动检查错误也是不必要和麻烦的。
我有一个简单的网站表单,可以通过它输入数据(名称、地址、密码,等等 - 这并不重要)。 我使用 jQuery ajax 调用将提交的数据发送到 PHP 文件,该文件依次验证数据并将其添加到数据库中。
在 ajax 结果中返回 mysqli_error()
是否会带来安全风险?例如,一条错误消息可能会在控制台日志中公开数据库名称或字段名称。
它在生产中是否可以接受,或者我应该将所有错误发送到带有 error_log()
的文件中。
是的,公开此信息会带来安全风险。这适用于所有 PHP 错误,而不仅仅是 mysqli 错误。这就是为什么您应该在生产中禁用 display_errors
。
使用 mysqli_error()
会带来额外的风险,因为您使用它的方式可能不遵守该指令。如果您的代码有任何 SQL 注入,暴露的错误是最重要的。它们不仅公开代码,还公开数据。
最好的办法就是永远不要使用这个功能。只需启用 automatic mysqli error reporting 并像对待任何其他 PHP 错误一样对待它们。即使在开发中,手动检查错误也是不必要和麻烦的。