1

Bonsoir,

Je suis en train de développer un super jeu en php trop bien qui va tuer Hordes trilove enfin bref.

Mon formulaire d'inscription est affiché avec JQuery pour que ça soit tout beau, et j'aimerais donc faire la requête SQL d'insertion de nouvel utilisateur à partir de ma fonction JS jQuery.

Une méthode basée sur celle là:

http://www.editeurjavascript.com/trucs/35,ajax_interrogez_votre_serveur_avec_javascript.php

c'est à dire un script js appellant une page php qui va faire la requête avec les arguments passés en get (il y'a moyen de le faire en post?) serait très facile à implémenter et tout, mais j'ai l'impression qu'elle pourrait être un risque de sécurité non négligeable. En effet, je pourrais forger plein d'URL et faire des requêtes au serveur avec un script, et ça me créérait des centaines d'utilisateurs à la seconde, ce que ma base SQL ne pourrait pas aimer.

Du coup, je ne sais pas trop comment faire...
Trout are freshwater fish and have under water weapons.
Trout are very valuable and immensely powerful.
Keep away from the trout.
Why should it mean that the fish in the sea are all unable to sing? Fish fish fish fish fish.
I wish that I could get my hands on a dozen fish!

2

Oui il faut faire de l'ajax.
Tu peux faire un get/post, tout ce que tu veux. Pour éviter que quelqu'un bombarde ton serveur, tu dois employer les mêmes méthodes que quand l'appel n'est pas forcément fait par le javascript. Tu peux également identifier la session de l'utilisateur. (les sessions et cookies marchent exactement pareil)

Pour l'ajax: ici tu as la base: http://www.squalenet.net/fr/pc/articles/ajax-asynchronous-javascript-and-xml-premiers-pas.php5 voire tout ce qu'il faut en fait.
Ensuite, jquery et les autres frameworks permettent de faire ça plus simplement, à voir avec ta lib.
Tout ce qui passe pas par le port 80, c'est de la triche.

3

Je ne vois pas trop en quoi c'est un trou de sécu supplémentaire par rapport à une page PHP classique hum
Si tu as peur des bots, tu devrais utiliser un système antispam, ça existe ^^
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

4

même remarque que Flanker, que la page soit appelée via un httprequest, ou que ce soit une "vrai" page indépendante, le risque est exactement le même...

par contre, quand tu dis ca :
PoissonPilote (./1) :
j'aimerais donc faire la requête SQL d'insertion de nouvel utilisateur à partir de ma fonction JS jQuery.

j'espere que tu ne le penses pas réellement. ce n'est jamais côté client qu'il faut préparer une requête SQL. Ce qu'il faut faire c'est appeler une page en POST via un httprequest, qui contient tes paramètres, et ca sera dans le PHP que tu vérifiera tes variables et construira ta requête SQL pour ensuite l'exécuter. (je préfère le rappeler car j'ai connu des personnes qui faisaient ca : préparer la requête en JS, puis la passer en paramètre GET... ca c'est un trou de sécu cheeky)

je rappelle également que ce n'est pas parce que tu as vérifié tes paramètres en JS qu'il ne faut pas le faire côté serveur.

afin, dernier petit détail, attention à l'utilisation abusive de l'AJAX, il ne faut l'utiliser que quand ca vaut réellement le coup. Le faite de mettre de l'ajax "car c'est cool de mettre de l'ajax et que tout le monde le fait" est la pire des raisons.
Ancien pseudo : lolo

5

En fait, la vérification JS est plutôt facultative, contrairement à celle en PHP ^^
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

6

C'est pas tellement une question de facultatif ou non puisqu'elles n'ont pas le même rôle et que l'une ne remplace pas l'autre : celle en JS joue sur l'ergonomie, celle en PHP sur la sécurité ^^
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

7

Quand je dis "faire la requête", j'entends "l'exécuter". Bien entendu elle est préparée en php.

Ok je crois que je vois comment faire, merchi!

afin, dernier petit détail, attention à l'utilisation abusive de l'AJAX, il ne faut l'utiliser que quand ca vaut réellement le coup. Le faite de mettre de l'ajax "car c'est cool de mettre de l'ajax et que tout le monde le fait" est la pire des raisons.


Je mets de l'Ajax parce que c'est un jeu de stratégie avec pas mal d'informations consultables, et c'est bien d'avoir une jolie UI fluide cheeky
Trout are freshwater fish and have under water weapons.
Trout are very valuable and immensely powerful.
Keep away from the trout.
Why should it mean that the fish in the sea are all unable to sing? Fish fish fish fish fish.
I wish that I could get my hands on a dozen fish!

8

Je fais comment pour passer des données post autrement qu'avec un formulaire?
Trout are freshwater fish and have under water weapons.
Trout are very valuable and immensely powerful.
Keep away from the trout.
Why should it mean that the fish in the sea are all unable to sing? Fish fish fish fish fish.
I wish that I could get my hands on a dozen fish!

9

ben en envoyant une requete post via un httprequest happy

petit exemple : http://html2pdf.fr/_module/js_adding/js/http_request.js
Ancien pseudo : lolo

10

(Au final quand l'utilisateur visite la page d'accueil avec le formulaire, je mets une variable de session qui va bien, et la page appellée via Ajax vérifie que cette variable est bien présente avant d'enregistrer l'utilisateur- si elle est pas présente, c'est qu'il y'a bidouille quelque part donc elle ne s'exécute pas.)
Trout are freshwater fish and have under water weapons.
Trout are very valuable and immensely powerful.
Keep away from the trout.
Why should it mean that the fish in the sea are all unable to sing? Fish fish fish fish fish.
I wish that I could get my hands on a dozen fish!