来自php脚本安全的mysqldump

时间:2013-12-18 17:54:40

标签: php mysqldump

如果我从php脚本做shell_exec('mysqldump DATABASE_NAME'),有危险吗?

有没有办法让它在Windows中运行?

我将从网页使用mysqldump进行数据库备份

运行时我还应该set_time_limit(0)吗?

1 个答案:

答案 0 :(得分:1)

是的,存在危险:如果数据库名称来自不受信任的源,则黑客可能会尝试在数据库名称中注入shell命令。例如:

$dbname = 'test; cat /etc/shadow';

可能用于从系统中获取用户名和加密密码(取决于系统)..

为避免这种情况,您应该使用escapeshellarg()来引用数据库名称(以及可能的其他参数):

shell_exec('mysqldump ' . escapeshellarg($database_name));

如果您按照我的提示here

,则不需要

set_time_limit()


毋庸置疑,您必须使用登录来保护页面。