Rendre illisible le script PHP d'une methode "POST"

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Rendre illisible le script PHP d'une methode "POST"

par TorTu » 29 nov. 2008, 20:59

Tu as une idée du script ?

par @rthur » 29 nov. 2008, 20:50

ok mais je ne connais pas du tous cette méthode en sachant que le site distant ne m'appartient pas la méthode fonctionne ?
oui
L'utilisateur pourra après naviguer sur le site distant ?
Non, enfin pas directement.
En fait c'est ton serveur qui va se retrouver identifié donc après tu peux afficher des interfaces similaires à ton utilisateur et déclencher les actions en conséquence sur le site distant, mais si il y a beaucoup d'action que ton utilisateur doit pouvoir effectué sur le site distant, ça va devenir vite complexe pour toi surtout si tu n'as jamais manipulé cURL.
Quoiqu'il en soit c'est la seule solution fiable.

par Invité » 29 nov. 2008, 20:34

ok mais je ne connais pas du tous cette méthode en sachant que le site distant ne m'appartient pas la méthode fonctionne ?

L'utilisateur pourra après naviguer sur le site distant ?

Merci de prendre de ton temps c'est sympa.

par @rthur » 29 nov. 2008, 20:30

Je vais le dire clairement alors...
La seule solution fiable est de faire l'identification côté serveur avec cURL.

par TorTu » 29 nov. 2008, 20:28

Si non j'avais pensée a sa ?
header('location:url');
$_POST['login'] = 'Pseudo';
$_POST['password'] = 'Mot_de_passe';
exit();

Mais je n'arrive pas à me loger.

ou
$post = array('Password'=>'mot_de_passe', 'login'=> 'Pseudo');
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "url_site_distant");
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $post);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$page = curl_exec($curl);
curl_close($curl);

mais la tu ma dit que l'utilisateur ne sera pas balancé sur le site distant..........

par @rthur » 29 nov. 2008, 20:17

C'est ça que tu essayes de cacher ?

Code : Tout sélectionner

<form method="post" action="http://www.test.com"> <input name="login" value="testlogin" type="hidden"> <input name="password" value="testpassword2" type="hidden"> <input value="Envoyer" type="submit"> </form>
:roll:

Plus sérieusement, ta "protection" n'est indéchiffrable que pour des newbies...
Installe l'extension Web Developer sur Firefox.
Ensuite il suffit grâce à cette extension de faire "View Source -> View Generated Source"...
2 clics et ta protection tombe :-/

Sinon avec l'extension TamperData de Firefox ou avec Wireshark et n'importe quel navigateur on arrivera au même résultat car les identifiants sont envoyés en clair quand le visiteur exécute le formulaire...

par TorTu » 29 nov. 2008, 20:05

sa ne m'intéresse pas alors...

http://wiki.alwaysdata.net/

j'ai crypter la page quant pense tu ?
Le site distant est down c'est un test... mais cela ne dérange en rien...

par @rthur » 29 nov. 2008, 19:56

mon niveau est trop médiocre pour scirpter une methode curl seule...
Et pourtant c'est la meilleure (et probablement la seule) solution... donc soit tu essayes de la mettre en oeuvre, soit tu laisses tes infos en clair :)

Par ailleurs afin que tu ne te lances pas là dedans pour rien, cURL va te permettre d'identifier ton serveur sur le site distant, ce qui permet ensuite via ton script PHP de récupérer et/ou d'envoyer des infos en étant identifié, toutefois ça ne permets pas de laisser accéder directement tes visiteurs à l'espace membre distant

par TorTu » 29 nov. 2008, 18:58

mon niveau est trop médiocre pour scirpter une methode curl seule...

par jojolapine » 28 nov. 2008, 00:24

As-tu au moins essayé la piste que je t'ai donné avant d'aller voir ailleurs?

par Invité » 27 nov. 2008, 22:24

pas d'autres idée ?

par dunbar » 27 nov. 2008, 19:00

donc de cette manière les utilisateurs ne voient plus le mdp mais le script non plus...
:lol: Et bien ça règle le problème alors :wink: C'est pour rire hein
Oui seulement si tu avais lu un peu plus le sujet, il n'a pas la main sur le script
Euuuh :oops: Oui bon ok j'ai lue mais pas cette partie ok je sort alors avant de ma faire bouf.... :twisted:

par jojolapine » 27 nov. 2008, 18:50

Oui seulement si tu avais lu un peu plus le sujet, il n'a pas la main sur le script, seulement sur le formulaire, donc de cette manière les utilisateurs ne voient plus le mdp mais le script non plus...

par dunbar » 27 nov. 2008, 18:41

Salut,
Une solution peut-être serait d'utiliser les SESSION avec un exemple ci dessous:
$_SESSION['form_pass']       = md5('pass'.date('r')); 
Exemple avec le champ password
<input name="<?php echo $_SESSION['form_pass']; ?>" type="password"></td>
Et ton code source va donner un truc du genre
<input name="178378f8940e981a3466651ebddf281d" type="password"></td>
Tu peut utiliser cette technique sur d'autre champs comme les champs VALUES par exemple :wink:
De plus avec cette technique le nom change a chaque actualisation de la page :wink:

par jojolapine » 27 nov. 2008, 16:09

Alors il faudrait utiliser curl
Qui te permettra de simuler un formulaire et donc de ne pas mettre en clair ton mot de passe sur ta page...