场景:
用户输入视频 url
php 使用
exec( "youtube-dl ". escapeshellarg($url) );
下载视频
问题:
它足够安全吗?
谢谢!
最佳答案
escapeshellarg
防止 shell 误解您的命令行,因此您在那里是安全的。但是,您仍在将用户输入传递给 youtube-dl。虽然这不是安全风险,但在某些情况下会失败。您要添加 --
以确保用户输入的是 URL 而不是选项:
exec( "youtube-dl -- " . escapeshellarg($url) );
这还将解决“URL”以破折号开头的问题。例如,-8F4YF_pH-4
是有效的 YouTube 视频 ID。
关于php - "escapeshellarg"足够安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23866753/