近期大型商务网站和政府网站被黑客通过 Adminer 数据库入侵,根本原因是 MySQL 的协议缺陷。
但在官方文档显示,客户端主机到服务器主机的文件传输由 MySQL 服务器启动 。理论上,客户端程序选择的文件不应是 LOAD DATA 语句中客户端指定的文件,而应该是传输服务器选择的文件。
虽然由很大的泄密风险,但服务器必须知道客户端上文件的完整路径,才可能成功。而请求 ,服务器就可以了解客户端上的文件夹结构。
一些客户端和库具有对此“功能”的内置保护,或者在默认情况下禁用它(例如 Golang,Python,PHP-PDO)。但并非所有都会这么做,正如 Adminer 案例所示。Adminer 很可能不会是最后一个出现该问题的
领取专属 10元无门槛券
私享最新 技术干货