A propos de magic_quotes : si on code pour que l'appli soit hébergée sur des plate-formes qu'on ne maîtrise pas, vaux mieux s'assurer que si magic_quotes est activé, ça va pas péter son appli genre avec http://svn.kd2.org/svn/misc/libs/tools/disable_magic_quotes_(...) par exemple.
Ne jamais développer avec magic_quotes ou register_globals activé, on est au 21ème siècle quand même.
file_get_contents c'est bien, curl n'est que rarement nécessaire. Par contre comme déjà dis, le _GET['adresse'] en dur c'est mal. Utilise filter_var stp ou parse_url à la limite. Je conseillerais également de rajouter un contexte (cf. la doc de file_get_contents et de stream_context_create) pour ajouter un timeout, genre :
Car si le site en face est down, ton script risque de timeout avec le site que tu requête, sans compter qu'attendre plus de 5 secondes une requête c'est bien trop, y'a un souci.
Un autre truc qui me choque : tu stocke le mot de passe dans le COOKIE ?! WTF ! On ne stocke jamais de donnée sensible dans les cookies, en GET ou en POST. JAMAIS.
Enfin $array[$_GET['id']] c'est mal aussi, vaux mieux vérifier avant que 1. _GET['id'] existe et est un numérique 2. il ait le droit de taper cet ID-ci. ensuite et ça mange pas de pain, caster la variable en int :
$array[(int)$_GET['id']] = 'bla bla';
De manière générale :
- toutes les variables venant de _GET, _POST, _COOKIE, _REQUEST et même _SERVER doivent être vérifiées, puis castées ou escapées.
- bien avoir conscience de la portée des variables, si tu utilise une variable $id à un endroit, se poser la question d'où vient-elle, es-tu sûr que c'est toi qui l'a forgée et pas par exemple un paramètre de la query string ? (particulièrement important pour les applications installées n'importe où, là ou on ne peux pas être sûr que register_globals est désactivé)
Bref il y a du boulot.
Mais l'idée de fond est intéressante, bon courage, ne pas se décourager avec nos commentaires techniques, ils ne sont là que pour t'aider à t'améliorer. La sécurité est importante, et c'est vrai que quand on débute on n'y pense pas vraiment (j'en suis le premier exemple), mais il faut la prendre en compte.
« Je vois bien à quels excès peut conduire une démocratie d'opinion débridée, je le vis tous les jours. » (Nicolas Sarkozy)
[^] # Re: Petit détail...
Posté par BohwaZ (site web personnel, Mastodon) . En réponse à la dépêche Sortie de Tapage 0.15. Évalué à 3.
Ne jamais développer avec magic_quotes ou register_globals activé, on est au 21ème siècle quand même.
file_get_contents c'est bien, curl n'est que rarement nécessaire. Par contre comme déjà dis, le _GET['adresse'] en dur c'est mal. Utilise filter_var stp ou parse_url à la limite. Je conseillerais également de rajouter un contexte (cf. la doc de file_get_contents et de stream_context_create) pour ajouter un timeout, genre :
$context = stream_context_create(array('http' => array('timeout' => 5)));
(de mémoire, vérifie dans le manuel)
Car si le site en face est down, ton script risque de timeout avec le site que tu requête, sans compter qu'attendre plus de 5 secondes une requête c'est bien trop, y'a un souci.
Un autre truc qui me choque : tu stocke le mot de passe dans le COOKIE ?! WTF ! On ne stocke jamais de donnée sensible dans les cookies, en GET ou en POST. JAMAIS.
Enfin $array[$_GET['id']] c'est mal aussi, vaux mieux vérifier avant que 1. _GET['id'] existe et est un numérique 2. il ait le droit de taper cet ID-ci. ensuite et ça mange pas de pain, caster la variable en int :
$array[(int)$_GET['id']] = 'bla bla';
De manière générale :
- toutes les variables venant de _GET, _POST, _COOKIE, _REQUEST et même _SERVER doivent être vérifiées, puis castées ou escapées.
- bien avoir conscience de la portée des variables, si tu utilise une variable $id à un endroit, se poser la question d'où vient-elle, es-tu sûr que c'est toi qui l'a forgée et pas par exemple un paramètre de la query string ? (particulièrement important pour les applications installées n'importe où, là ou on ne peux pas être sûr que register_globals est désactivé)
Bref il y a du boulot.
Mais l'idée de fond est intéressante, bon courage, ne pas se décourager avec nos commentaires techniques, ils ne sont là que pour t'aider à t'améliorer. La sécurité est importante, et c'est vrai que quand on débute on n'y pense pas vraiment (j'en suis le premier exemple), mais il faut la prendre en compte.
« Je vois bien à quels excès peut conduire une démocratie d'opinion débridée, je le vis tous les jours. » (Nicolas Sarkozy)