2013-12-18 60 views
0

如果我从0123脚本shell_exec('mysqldump DATABASE_NAME'),是否有任何危险?从php脚本mysqldump安全

有没有办法让这个在Windows中工作?

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

而且应该运行此当我做set_time_limit(0)

+0

危险?从何而来? – 2013-12-18 17:56:35

+0

如果它可以用来以任何方式访问服务器。我需要转义sql注入吗? –

+0

真的没什么意义 – 2013-12-18 18:06:31

回答

1

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

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

力量从系统(取决于系统)获得的用户名和加密的密码..

为了避免这种情况,你应该使用escapeshellarg()引用数据库名称(和可能其他参数):

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

set_time_limit()如果您关注我的提示是不需要here


不用说,你必须使用登录来保护页面。