10bet网址
MySQL 5.7参考手册
相关的文档10bet官方网站 下载本手册
PDF(美国高级主任)- 36.3 mb
PDF (A4)- 36.3 mb
手册页(TGZ)- 235.3 kb
手册页(Zip)- 347.1 kb
信息(Gzip)- 3.3 mb
信息(邮政编码)- 3.3 mb
本手册节选

MySQL 5.7参考手册// 客户端编程安全指南

6.1.7客户端编程安全指南

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

正确处理MySQL错误消息

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

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

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

例如,一个显示这样消息的应用程序向客户端暴露了数据库名和表名,这是客户端可能试图利用的信息:

ERROR 1146 (42S02):表mydb。Mytable '不存在

相反,当应用程序从MySQL接收到此类错误时,它的正确行为是将适当的信息(包括错误信息)记录到只有可信人员才能访问的安全审计位置。应用程序可以返回一些更通用的内容,例如内部错误对用户。