php - "escapeshellarg"足够安全吗?

标签 php security exec youtube-dl

场景:

  1. 用户输入视频 url

  2. php 使用 exec( "youtube-dl ". escapeshellarg($url) );

  3. 下载视频

问题:

它足够安全吗?

谢谢!

最佳答案

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/

相关文章:

php - 如何将附加变量传递给匿名 TableGateway 方法参数?

php - 检查是否设置了对象属性 - SimpleXML

mysql - 检索用户提供的数据 : any benefit for prepared statements

linux - 使用 docker exec 执行两个命令

java - 如何在 android 中发布参数并将数据作为 JSONObject 返回?

javascript - JS 重定向后 session 丢失

php - 评论区sql注入(inject)

ios - 这种编码方法是否可以利用?

Python zlib 解压缩、编码加载和启动

c - Linux,C 将 cat 与 exec(3) 结合使用