2010-11-08 5 views
0

Je me connecte à distance à un site Web en utilisant cURL et tout fonctionne correctement. Je poste les informations de connexion, récupérant les cookies et étant redirigé par le site distant. J'ai quelques questions sur le fonctionnement des cookies. 1.) Y a-t-il des problèmes de sécurité dont je dois me préoccuper en envoyant les informations de connexion via POST? 2) Lorsque je mets le curlopt_cookiejar à /php/cookies.txt, je ne vois pas ce fichier enregistré. Cela peut être dû à des autorisations, mais la connexion fonctionne de toute façon. Pourquoi cela serait-il le cas? Quelles seraient les autorisations correctes pour autoriser l'écriture et l'enregistrement de ce fichier?Utilisation de cookies avec cURL

3.) Est-ce que le fichier cookiejar est sauvegardé en clair? Quel est le meilleur emplacement pour enregistrer ce fichier? 4. Si ce script est utilisé régulièrement par plusieurs utilisateurs, qu'est-ce qui empêche que les informations de cookie correctes contenues dans cookies.txt qui sont renvoyées au serveur en utilisant curlopt_cookiefile soient mélangées par d'autres cookies qui ont été écrits dans ce fichier? Quelle est la meilleure façon d'approcher les cookies qui expirent et de supprimer les anciens cookies de ce fichier?

Ceci est évidemment une fonction très importante de cURL, mais je n'arrive pas à trouver ces réponses n'importe où. J'espère qu'un maître cURL peut poser ces questions directement une fois pour toutes.

Répondre

1

1) Non

2)
    2,0) Il est écrit/php - qui est, hors du système de fichiers racine, dans un dossier php. Avez-vous vérifié là?
    2.1) Le cookiejar ne sera utilisé que pour les demandes suivantes qui ne publient PAS les informations de connexion. À ce stade, je me demande à quoi vous utilisez le cookiejar pour ... êtes-vous certain que vous avez même besoin de ces cookies? Ils (ne devraient pas) être envoyés sur le site tiers que vous avez redirigé, alors que font-ils?
    2.2) L'utilisateur exécutant PHP (généralement le serveur Web) aura besoin d'autorisations d'écriture sur ce fichier. 3) Tant que vous placez le cookiejar quelque part sur votre système de fichiers auquel les autres utilisateurs ne peuvent accéder arbitrairement, cela devrait être bon - par exemple, vous voulez probablement le placer ailleurs que sur le webroot. 4) Si ce script est utilisé régulièrement par plusieurs utilisateurs, vous obtiendrez CERTAINEMENT un mélange de toutes sortes de données dans ce fichier - ce qui indique que vous devriez probablement donner à chaque utilisateur son propre fichier cookiejar, ou quelque chose ... puisque l'emplacement est juste défini via une chaîne PHP, vous ne devriez pas avoir trop de mal à comprendre comment le rendre dynamique. CURL prendra soin de ne pas écrire les cookies expirés dans le pot lors des demandes et des réponses ultérieures.

+0

2.0 - J'ai vérifié là mais il n'y a aucun fichier qui a été écrit. Je pense que cela est dû au fait que le dossier ne dispose pas d'autorisations d'écriture complètes. Quel est le moyen le plus sûr d'autoriser l'écriture? J'ai lu tant de choses sur la façon dont CHMOD 777 n'est pas une bonne idée .. –

+0

2.1 - Le login ne redirigerait vers la bonne page que si les cookies du site distant étaient dans l'en-tête, sinon il me déconnecterait. 2.2 - pouvez-vous me dire comment autoriser les autorisations d'écriture sur le serveur sans accorder au 777 le droit d'accès au dossier? Est-ce quelque chose que je dois faire via un accès root? 3 - Puis-je utiliser un chemin comme celui-ci? /../folder_out_of_webroot/ 4 - Est-ce à dire que le fichier cookies.txt sera automatiquement supprimé lorsque les cookies auront expiré? –

+0

La manière la moins permissive d'accorder des permissions d'écriture au processus que curl va exécuter est d'obtenir l'uid/gid de PHP (via phpinfo()), de lui attribuer le cookiejar, et de le faire ensuite 0700 (c'est " tous les droits du propriétaire, personne d'autre n'a aucun droit "). – TML