Eviter les requete HTML directe

Mammouth du PHP | 693 Messages

22 avr. 2007, 01:17

Bonjour,

J'aimierai savoir si c'est possible de faire que les requete envoyé autrement que par un navigateur soient ignorés.

Car j'ai des formulaires qui dépendent de l'enregistré mais le traitmeent est le même derrière. J'ai peur que certains petits malin s'amuse à envoyé des requetes URL directement, par exemple avec cURL. Voyez vous un moyen de l'empecher ?

Mammouth du PHP | 693 Messages

22 avr. 2007, 09:49

J'ai fait un test sur les variables d'environnement. Cependant, comme je suis une buse en CURL, j'arrive pas à savoir si ca marche...

Mammouth du PHP | 991 Messages

22 avr. 2007, 09:53

essaye la fonction htmlentities
DevOps, Symfony4, Hoa

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

22 avr. 2007, 10:12

Est-ce qu'il est possible de nous donner un exemple ... parce que j'avoue ne pas avoir compris ton soucis
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Mammouth du PHP | 693 Messages

22 avr. 2007, 10:12

Heu, je te demande comment faire pour éviter qu'on se connecte autrement sur mon site que par un navigateur, et tu me donne une fonction qui converti les caractère en caractère pour URL ? Je comprend pas... :shock:

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9783 Messages

22 avr. 2007, 11:02

Bonjour,
Bonjour,

J'aimierai savoir si c'est possible de faire que les requete envoyé autrement que par un navigateur soient ignorés.
La réponse à ta question est non.
Car j'ai des formulaires qui dépendent de l'enregistré mais le traitmeent est le même derrière. J'ai peur que certains petits malin s'amuse à envoyé des requetes URL directement, par exemple avec cURL. Voyez vous un moyen de l'empecher ?
A toi de filtrer les variables que tu récupères en entrée avec htmlentities() si ce sont des infos à afficher ensuite sur une page web, avec mysql_real_escape_string() si c'est pour enregistrer dans une base de données, avec des regex pour restreindre les caractères autorisés ;)
Quand tout le reste a échoué, lisez le mode d'emploi...

Mammouth du PHP | 693 Messages

22 avr. 2007, 11:35

EN fait, c'est qu'en fonction du statu de la personne, elle a différentes possibilité.

Par exemple un membre a aura un champs nom et un champ adresse, alors qu'un individu b aura en plus un champ numéro de téléphone.

Et j'aimerai empecher que le membre a puisse envoyé un numéro de téléphone par requete directe.

J'avais pensé à tester l'existance de la variable de navigateur, ce qui offre une protection supplémentaire, mais je sais pas ce que ca vaut...

Eléphant du PHP | 177 Messages

22 avr. 2007, 14:51

Étant donné que l'on puisse accéder a un site web grace a certains langage de programmation sans avoir recourt a un navigateur, avec une simple déclaration dans les headers et d'autre que je ne saurais vraiment expliquer. Mais tu prend le PERL et tu peux plus ou moins facilement faire un script qui ce connecte a un site et navigue dedans sans pour autant utiliser un navigateur au sens propre du terme.
Il est aussi possible de faire cela grâce a php mais que sous win d'aprés ce que j'avais vu ....

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9783 Messages

22 avr. 2007, 23:22

EN fait, c'est qu'en fonction du statu de la personne, elle a différentes possibilité.

Par exemple un membre a aura un champs nom et un champ adresse, alors qu'un individu b aura en plus un champ numéro de téléphone.

Et j'aimerai empêcher que le membre a puisse envoyé un numéro de téléphone par requête directe.
Bah c'est très simple, il suffit que tu fasse une vérification du statut du membre avant d'effectuer l'opération demandée.
Quand tout le reste a échoué, lisez le mode d'emploi...

Mammouth du PHP | 693 Messages

23 avr. 2007, 12:40

Oui, en effet...

Et ca ne marche pas si je teste l'existance d'une variable de navigateur ?

ViPHP
ViPHP | 5924 Messages

23 avr. 2007, 13:09

Oui, en effet...

Et ca ne marche pas si je teste l'existance d'une variable de navigateur ?
Tu peux utiliser $_SERVER['HTTP_USER_AGENT'] mais le logiciel peut envoyer n'importe quel User Agent, donc ce n'est pas super fiable...

ViPHP
ViPHP | 2144 Messages

23 avr. 2007, 13:23

Même en utilisant un naviguateur, il est possible de t'envoyer des variables, en modifiant le formulaire que tu as proposé au membre.
La seule façon propre et sûr de faire, c'est de vérifier le status du membre lors du traitement.
Tu peux utiliser des variables de sessions pour stocker le status du membre, et pouvoir y accéder facilement pour les vérifications.

Mammouth du PHP | 693 Messages

23 avr. 2007, 13:39

Bien, merci beaucoup.