我想用exec
执行一个PHP文件,以便在后台处理一个进程,其中1234567
是我希望从数据库调用的id,以获取有关我的内容的一些信息处理。
exec('/var/www/somescript.php 1234567 > /dev/null &');
我可能遇到任何潜在的安全问题或问题吗?
我应该对我传入的参数使用escapeshellarg()
吗?
答案 0 :(得分:0)
我确定这取决于是否应该通过网络用户调用,以及是否由用户创建了争论或执行命令。
在我看来应该总是调用使用escapeshellarg(),因为你不会使用MYSQL_函数而不会因为SQL注入的风险而逃避任何输入。使用exec函数是一个类似的问题,如果不转义输入,就不会使用脚本。但是,逃避输入并不一定会阻止人们滥用脚本。
你确实需要确保已经对发送到脚本的任何参数进行了验证,例如你不希望任何人注释掉你的脚本,并且在arguement部分注入一个完全不同的脚本来添加一个用户(鉴于propper权限,不应允许这种情况发生。)
我会将此作为最后的手段,如果问题不能以任何其他方式解决,而不是使用exec。