Help ! interdire une url (j'offre 100 euros au vainqueur)

Discussion dans 'URL Rewriting et .htaccess' créé par tony006, 20 Septembre 2005.

  1. tony006
    tony006 Nouveau WRInaute
    Inscrit:
    5 Novembre 2004
    Messages:
    19
    J'aime reçus:
    0
    bonjour,
    j'ai donc une url de type : www.example.com/form.php?affi=jean&user=new
    elle se rewrite aussi sous www.example.com/jean-user-new.html

    Je cherche à bloquer l'accés direct ou referer à cette page dynamique.
    Sachant que tout les "affi" sont des membres ayant ce même type d'url
    tout se fait de façon automatique sur le site
    et le mec ayant payé sur paypal revient sur cette page dynamique qu'on lui autorise DEPUIS ET SEULEMENT EN PROVENANCE DE PAYPAL.
    Paypal utilise la méthode http-equiv="refresh"

    j'ai l'impression que je me plante de flags ......

    cahier des charges:
    on bloque tous les accés directs à form.php
    on bloque tous les referers à form.php
    on autorise seulement le refresh depuis paypal vers les pages:
    www.example.com/form.php?affi=jean&user=new
    www.example.com/form.php?affi=jacques&user=new
    www.example.com/form.php?affi=robert&user=new

    ou si plus facile avec les pages rewritées:
    www.example.com/jean-user-new.html
    www.example.com/jacques-user-new.html
    www.example.com/robert-user-new.html

    l'outil ne devra pas utiliser de htpasswd

    j'ai essayé :
    RewriteRule (.*)-([^-]+)-([^-]*)(.*)\.html$ /$1.php?affi=jean&user=new [L]


    RewriteCond %{HTTP_REFERER} !^http://www.example.com [NC]

    RewriteCond %{HTTP_REFERER} !^http://www.PayPal.com [NC]

    RewriteCond %{HTTP_REFERER} !^http://PayPal.com [NC]

    RewriteRule /* http://www.example.com [R,L]



    d'avance merci a ceux qui aurait une idée.
    j'offre 100 euros par paypal au premier qui m'aura fournit un bout de code valable et que nous aurons testé.
     
  2. dubstyle
    dubstyle WRInaute discret
    Inscrit:
    17 Mai 2005
    Messages:
    51
    J'aime reçus:
    0
    :? J'vais ptet dire une grosse connerie mais pourquoi tu passerais pas directement dans le php avec un truc dans le style de :
    Code:
    if ($affi=="" || $user="" || $HTTP_REFERER=="") {
    location.href='htpp://www.example.com';}
    else {
    location.href="http://www.example.org';
    }
     
  3. nodom
    nodom WRInaute occasionnel
    Inscrit:
    15 Janvier 2005
    Messages:
    281
    J'aime reçus:
    0
    la solution est prête. et les 100 Euros?
     
  4. Madrileño
    Madrileño Membre Honoré
    Inscrit:
    7 Juillet 2004
    Messages:
    31 738
    J'aime reçus:
    336
     
  5. tony006
    tony006 Nouveau WRInaute
    Inscrit:
    5 Novembre 2004
    Messages:
    19
    J'aime reçus:
    0
    ok désolé, je prend note
     
  6. tony006
    tony006 Nouveau WRInaute
    Inscrit:
    5 Novembre 2004
    Messages:
    19
    J'aime reçus:
    0
    me contacter par MP pour tester la solution, dés validation, j'envoi 100 euros dans l'heure sur ton Paypal (c'est trés sérieux)
     
  7. tony006
    tony006 Nouveau WRInaute
    Inscrit:
    5 Novembre 2004
    Messages:
    19
    J'aime reçus:
    0

    mais non je veux pas rediriger, je veux que cette url soit atteignable juste par paypal, j'ai essayé ta solution et de toute facon si affi vide et user vide mon php n'affiche pas le form c'est logique.
    En plus paypal entre dans la condition referer vide puisque ce dernier fait une requete refresh.
     
  8. nodom
    nodom WRInaute occasionnel
    Inscrit:
    15 Janvier 2005
    Messages:
    281
    J'aime reçus:
    0
    tony006
    je vois maintenant pourquoi vous avez levé le pari
    ce n'est pas évident, http_refferer n'est pas fiable, il peut être supprimée/modifiée par le site d'origine, par le navigateur (par mesure de sécurité notamment avec https) et par des pirates probablement. donc à écarter totalement. toutefois c'est d'abord votre besoin réel qui compte, et je sens qu'une solution existe.
    il me semble que vous utilisez une redirection automatique de paybal vers le site, et vous permettez déjà l'accès au contenu payant. même si je connais pas très bien paybal voici mes remarques :
    1) avec cette méthode ête vous sure que le paiement est effectivement réalisé? ou ce n'est pas important?
    2)même si vous connaissez le referrer est transmis ce n'est pas la meilleur solution. car suppsons que la fenêtre a été fermée avant que votre script ne soit exécuté, le client ne peut plus accéder, doit il payer une deuxième fois?

    voici deux piste qui me semblent possible:
    1) dans le lien de paiement qui renvoi vers paybal mettre une varible totalement invisible par l'utilisateur et qui doit être envoyée à paybal (et enregistrée dans votre BD). paybal doit vous retourner cette variable.
    2) exploitation de la notification instantannée de paybal par un script.
    on peut approfondir les différents scénarii si vous voulez mais que pensez vous déjà des pistes proposées.
     
  9. tony006
    tony006 Nouveau WRInaute
    Inscrit:
    5 Novembre 2004
    Messages:
    19
    J'aime reçus:
    0
    donc on écarte le referer qui est bypassable
    non, c'est paypal qui permet d'indiquer un champ hidden nommé "return_url" cela permet de configurer une thank you page qui retourne (par la méthode refresh) l'acheteur vers le site payant.
    Mon idée et de proposer sur cette page de retour un formulaire d'enregistrement.
    justement si, on bloque :
    tous les accés direct :
    - offline page formulaire sauvegardé
    - lien envoyé par email,
    - lien mis en favoris

    tous les accés referer
    - lien vers la page formulaire balancé sur d'autres sites internet de hack
    - lien clic droit enregistrer sous
    la page ne doit pas être completement bloqué mais si elle est accédé directement ou par une mise en favoris, on n'affiche plus le formulaire mais une information en cas de probleme et l'email admin. Le client peut solliciter le vendeur car il reçoit une note paypal avec les références du vendeur et donner son numéro de transaction paypal
    on ne peux pas cacher cette variable car :
    Le client dans la page avec le bouton paypal fait "afficher source" il voit le code en clair et ainsi les champs hidden, n'importe quel petit webmaster, saura pirater cela.
    on pourrai demander au visiteur dans le formulaire d'écrire le numéro de transaction, mais le script doit pouvoir vérifier ce numéro et la je n'ai pas l'algorythme paypal pour vérifier
    pistes interressantes mais pas de solution....
    j'ai pourtant chercher sur :
    http://www.paypaldev.org/default.asp
    un site existe avec cette solution : http://www.votre-mailing-list.com/index.php?pg=debut_inscrip donc si on affiche le source dans le form paypal on a : return_url = http://www.votre-mailing-list.com/inscription.php
    donc on se dit : facile je peux pirater et la lorsque l'on va sur cette page :
    http://www.votre-mailing-list.com/inscription.php
    message : Cette page n'est pas accessible directement
    -J'ai essayé de faire un refresh d'un de mes sites vers cette url = page vérouille,
    - J'ai essayé une page web sur mon ordi et faire clic droit enregistrer sous c'est pareil
     
  10. nodom
    nodom WRInaute occasionnel
    Inscrit:
    15 Janvier 2005
    Messages:
    281
    J'aime reçus:
    0
    voilà à mon sens la solution:
    1) le formulaire ne doit pas poster vers paybal mais vers paybal.php
    2)paybal.php récupère les infos postées, génère un code et l'enrgistre dans la BD ou autre, ajoute le code aux éléments postés et poste le tout vers paybal.com
    3)paybal.com doit retourner le code posté qui vous servira à vérifier...
    qu'en pensez vous?
     
  11. tony006
    tony006 Nouveau WRInaute
    Inscrit:
    5 Novembre 2004
    Messages:
    19
    J'aime reçus:
    0

    j'ai rien compris nodom :oops:

    bon j'ai un bout de la soluce qui devrait servir à pas mal de monde :
    LA BALISE REFRESH UTILISE LA METHODE GET
    UN CLIC REFERER (donc un lien simple) UTILISE LA METHODE GET

    donc voiçi ce que j'ai fait et qui marche en partie:


    // analyse de la méthode de requête employé pour attérir sur la page
    $referer = getenv( "REQUEST_METHOD" );
    $tapps_referer = "GET";

    // on trace un peu le visiteur :
    $hostname = gethostbyaddr($_SERVER['REMOTE_ADDR']);
    $ip = getenv( "REMOTE_ADDR");

    if (isset($tapps_referer) && $tapps_referer!="")
    {
    // si la méthode est bien GET alors faire
    if ($tapps_referer == $referer)
    {
    // si referer est vide alors on affiche tout
    if($HTTP_REFERER=="")
    {
    echo "bla bla FORMULAIRE D'ENREGISTREMENT<br><br>";
    }

    // si le referer est pas vide on affiche non
    else
    {
    echo "FORMULAIRE INTERDIT DE CETTE FACON<br>";
    }
    }

    // dans tous les cas on affiche :
    echo "<br> Venant de la page : <br><b>";
    echo $HTTP_REFERER;
    echo "</b><br> adresse IP : <br><b>";
    echo $ip;
    echo "</b><br> Identifiant Machine Provider : <br><b>";
    echo $hostname;

    // on peut même faire une log ou une fonction mail() admin

    }


    donc effectivement :
    - si on clic sur un lien (GET) referer pas vide donc : NON
    - Si on utilise la balise refresh (GET) referer vide donc : OUI
     
  12. tony006
    tony006 Nouveau WRInaute
    Inscrit:
    5 Novembre 2004
    Messages:
    19
    J'aime reçus:
    0
    CAHIER DES CHARGES NON REMPLI :


    - empecher un clic (lien vers la page d'enregistrement) direct (favoris sur le bureau ou dans les bookmarks)
    - empecher un clic (lien vers la page d'enregistrement) à l'interieur d'un email.
    - bloquer le refresh uniquement sur Paypal (htaccess ? )



    par exemple : un type envoi un email à son pote :
    "tiens pour t'enregistrer gratuitement clic ici sans payer !!!"
     
  13. nodom
    nodom WRInaute occasionnel
    Inscrit:
    15 Janvier 2005
    Messages:
    281
    J'aime reçus:
    0
    tony006,
    voici le code qui vous permet non seulement de vérifier l'origine mais surtout si le paiement a été effectué ou non., si le code php de vérification en pode paiement instanné. si vous n'arrivez pas à le décoder en l'étudie ensemble:
    PHP 4.1

    // read the post from PayPal system and add 'cmd'
    $req = 'cmd=_notify-validate';

    foreach ($_POST as $key => $value) {
    $value = urlencode(stripslashes($value));
    $req .= "&$key=$value";
    }

    // post back to PayPal system to validate
    $header .= "POST /cgi-bin/webscr HTTP/1.0\r\n";
    $header .= "Content-Type: application/x-www-form-urlencoded\r\n";
    $header .= "Content-Length: " . strlen($req) . "\r\n\r\n";
    $fp = fsockopen ('www.paypal.com', 80, $errno, $errstr, 30);

    // assign posted variables to local variables
    $item_name = $_POST['item_name'];
    $item_number = $_POST['item_number'];
    $payment_status = $_POST['payment_status'];
    $payment_amount = $_POST['mc_gross'];
    $payment_currency = $_POST['mc_currency'];
    $txn_id = $_POST['txn_id'];
    $receiver_email = $_POST['receiver_email'];
    $payer_email = $_POST['payer_email'];

    if (!$fp) {
    // HTTP ERROR
    } else {
    fputs ($fp, $header . $req);
    while (!feof($fp)) {
    $res = fgets ($fp, 1024);
    if (strcmp ($res, "VERIFIED") == 0) {
    // check the payment_status is Completed
    // check that txn_id has not been previously processed
    // check that receiver_email is your Primary PayPal email
    // check that payment_amount/payment_currency are correct
    // process payment
    }
    else if (strcmp ($res, "INVALID") == 0) {
    // log for manual investigation
    }
    }
    fclose ($fp);
    }
    ?>
     
  14. correiaj
    correiaj WRInaute impliqué
    Inscrit:
    25 Avril 2005
    Messages:
    987
    J'aime reçus:
    0
    Paypal est-il vraiment adapté à ce type de commerce, je ne pense pas...
     
  15. ze_oggy
    ze_oggy Nouveau WRInaute
    Inscrit:
    10 Janvier 2006
    Messages:
    1
    J'aime reçus:
    0
    Bonjour à tous !

    Voilà, je me permerts de "squatter" ce post car vous parlez d'un script (Paypal) que j'utilise mais que je n'arrive pas à faire fonctionner.

    En effet, les 3/4 des variables postées ($payment_status....) sont vides.

    J'aimerai en connaitre la raison. Avez vous une idée ?

    Merci pour votre aide !
     
Chargement...
Similar Threads - interdire offre 100 Forum Date
Interdire une plage d'IP dans le .htaccess via "Deny from" URL Rewriting et .htaccess 9 Septembre 2022
Pourquoi ne pas utiliser le robots.txt pour interdire l'indexation ? Débuter en référencement 14 Avril 2022
Site d'essai : quelle méthode pour interdire l'accès ? Développement d'un site Web ou d'une appli mobile 19 Octobre 2020
Interdire l'indexation d'url interne en double Référencement Google 7 Janvier 2020
Néfaste au référencement : interdire aux visiteurs US ? Problèmes de référencement spécifiques à vos sites 10 Décembre 2019
L'attribut data-nosnippet pour interdire des textes dans les snippets Référencement Google 26 Septembre 2019
Interdire téléchargement fichiers Demandes d'avis et de conseils sur vos sites 18 Juillet 2019
Ai-je le droit d'interdire le partage du lien de ma chaîne YouTube(pour une raison quelconque). YouTube, Google Images et Google Maps 16 Décembre 2018
Interdire le crawl d une partie du site Débuter en référencement 15 Octobre 2018
Interdire indexation d'un contenu Administration d'un site Web 11 Septembre 2017
Comment interdire le crawl des pages de faibles valeurs (Noindex ; Nofollow ; Disallow ?) Débuter en référencement 22 Mars 2017
Interdire l'accès au un site aux concurrents Droit du web (juridique, fiscalité...) 30 Janvier 2017
interdire l'accés de certains pays avec le ht.access URL Rewriting et .htaccess 15 Mai 2016
Interdire Iframe mais autoriser certains sites Développement d'un site Web ou d'une appli mobile 11 Mai 2016
Robots.txt: interdire un dossier mais autoriser une page de ce dossier Crawl et indexation Google, sitemaps 3 Février 2016
Interdire accès sauf pour . Googlebot URL Rewriting et .htaccess 22 Janvier 2014
Interdire un référencement sur un site tiers Problèmes de référencement spécifiques à vos sites 12 Novembre 2013
Interdire la mise en cache des images URL Rewriting et .htaccess 22 Août 2013
Comment interdire une redirection ? Netlinking, backlinks, liens et redirections 13 Août 2013
Comment interdire TOUS les moteurs de recherche en utilisant le htaccess? URL Rewriting et .htaccess 7 Mai 2013