2010-08-04 6 views
0

Bien que "légèrement" lié à une question précédente, il est différent. Dans quelle mesure ce code est-il "sécurisé" en termes de cURL? Y a-t-il d'autres "bits" qui devraient/devraient être ajoutés. Notez qu'il n'est pas utilisé pour transmettre des informations "sensibles".Sécurité de ce code cURL

$ch = curl_init("http://www.example.com/test.xml"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
$data = curl_exec($ch); 
curl_close($ch); 
+4

semble bon .. y at-il un problème? Je ne pense pas que cela a quelque chose à voir avec la sécurité ... – Fosco

+0

Non, pas de problème, mais pas trop sûr curl & sécurité – user351657

+0

'$ data = file_get_contents (" http://www.example.com/test.xml "); 'c'est tout ce dont vous avez besoin –

Répondre

1

Peu de choses à noter:

  • Vous devriez essayer/catch dans le cas où le http://www.example.com/test.xml donne une erreur, comme 404 ou 500. Dans ce cas, vous voulez probablement provoquer une erreur fatale ou avoir il a traité dans votre application.
  • Vous devez calculer la quantité de données arrivant sur la ligne. Que se passe-t-il si example.com décide (ou est cassé) et test.xml devient plusieurs gigaoctets de large? Votre application doit faire face à cela, d'une manière ou d'une autre.
  • Vous souhaitez probablement inclure une logique d'en-tête/de redirection 30X. curl suit une redirection, mais dans ce cas, vous voulez probablement que la redirection soit enregistrée afin que vous puissiez prendre des mesures dans votre application (changez l'emplacement au nouvel emplacement)
  • Vous devriez être sûr que curl_close() est toujours appelé. En cas d'erreur fatale, de débordement de mémoire, etc., vous ne voulez certainement pas que ces prises restent ouvertes.

Votre code n'est ni sécuritaire, ni incorrect. Il ne gère tout simplement pas les carrefours et pourrait être durci.

+0

Merci pour cela - vraiment utile – user351657