10bet网址
MySQL 8.0参考手册
相关文件10bet官方网站 本手册下载 从本手册中摘录

6.1.7客户编程安全指南

访问MySQL的客户端应用程序应使用以下准则来避免错误地解释外部数据或曝光敏感信息。

正确处理MySQL错误信息

应用程序有责任拦截由于使用MySQL数据库服务器执行SQL语句而发生的错误,并适当地处理这些错误。

MySQL错误中返回的信息不是毫无意义的,因为这些信息是使用应用程序调试MySQL的关键。例如,调试一个常见的10路连接几乎是不可能的选择语句,而不提供有关哪些数据库、表和其他对象涉及问题的信息。因此,MySQL错误有时必须包含对这些对象名称的引用。

当应用程序从MySQL接收到这样的错误时,一个简单但不安全的方法是拦截它并将其逐字显示给客户端。然而,暴露错误信息是已知的应用程序漏洞类型(cwe - 209)和应用程序开发人员必须确保应用程序没有此漏洞。

例如,显示诸如此类的消息的应用程序将数据库名称和表名称为客户端公开,这是客户端可能会尝试利用的信息:

ERROR 1146 (42S02): Table 'mydb. mydb. mydb。mytable”根本不存在

相反,当它从MySQL接收到这样的错误时,应用程序的适当行为是将适当的信息,包括错误信息,包括可访问的人员可访问的安全审核位置。该应用程序可以返回更通用的东西,例如内部错误给用户。