无法从php脚本执行curl命令?

nr7wwzry  于 2023-09-29  发布在  PHP
关注(0)|答案(1)|浏览(132)

我试图创建一个PHP脚本,当有人点击按钮时将被调用,并将被带到vt.php现在我想下载的示例的基础上VT散列是从以前的PHP页面收到现在我尝试使用这种逻辑,但它不工作。

<?php

$fileHash = $_POST['hash'];

echo $fileHash;
#$command = escapeshellcmd("python vt_download.py $fileHash");
$command = escapeshellcmd("curl -v --location https://www.virustotal.com/vtapi/v2/file/download?apikey=APIKEY\&hash=$fileHash -o $fileHash");
$output = shell_exec($command);
echo $output;

?>

输出c75 b5 e2 ca 63 adb 462 f4 bb 941 e0 c9 f509
预期输出c75 b5 e2 ca 63 adb 462 f4 bb 941 e0 c9 f509文件下载过程-- curl输出

当这个页面被调用时,它只是打印哈希值而不是下载文件。有什么建议来解决这个问题吗?
P.S:Error in downloading file from VirusTotal only on server?--以前在这里问过这个问题,使用python会有帮助。

km0tfn4u

km0tfn4u1#

您可以直接使用PHP cURL library,而不是使用shell_exec函数,该函数在使用用户输入数据时会很快导致安全问题。

<?php
    $fileHash = $_POST['hash'];

    // Initializing cURL, we can put the URL in the curl_init function
    $ch = curl_init("https://www.virustotal.com/vtapi/v2/file/download?apikey=AP‌​IKEY&hash=$fileHash");

    // We need to retrieve the response, setting appropriate options :
    curl_setopt($ch , CURLOPT_RETURNTRANSFER , true);

    // Executing the request
    $result = curl_exec($ch);

    // Error verification
    if (!$result){
        echo('Error: "' . curl_error($ch) . '" - Code: ' . curl_errno($ch));
    }
    curl_close($ch);
?>

相关问题