Verif de formulaire et controle sur IP

Le problème exposé dans ce sujet a été résolu.

Bonjour,

J'ai quelque questions concernant la sécurité.

J'ai un form global plus un d'upload qui est traité et n'est pas obligatoire. Par contre tous les autres champs de mon form sont obligatoires, donc à part le htmlspecialchars sur les champs textes au moment de l'affichage, je crois qu'au moment du traitement, je n'ai rien de spécial à vérifier.

Autre question: en ce qui concerne les injections sql, j'ai cru comprendre qu'elles ne sont pas possibles avec les requêtes préparées mais seulement dans le cas ou des données passent par l'url.

Est-ce que c'est juste ?

Enfin, je bloque sur un dernier truc.

J'ai une liste de campings sur lesquels on peut donner son avis via mon form et je voudrais limiter à un seul commentaire par camping et par IP.

J'ai donc trouvé une fonction toute prête qui me récupère l'IP et ensuite je l'enregistre dans ma table avis au moment du traitement de mon form. C'est pour la suite que je ne sais pas comment m'y prendre.

Merci pour votre aide :)

+0 -0

AU moment du traitement, tu dois quand même t'assurer que tout est rempli comme il faut. Par exemple en HTML, l'attribut required des champs de formulaire est facilement contournable (avec Firebug/F12 par exemple). Ne te fie jamais ni au HTML, ni au Javascript, ni aux utilisateurs. Vérifie tout côté serveur.

Tu dois également veiller aux failles CSFR ( https://openclassrooms.com/courses/securisation-des-failles-csrf ).

C'est pas vraiment pertinent de ne te baser que sur l'IP, car deux personnes peuvent avoir la même IP (l'IP du routeur de leur réseau, dans une entreprise par exemple). Tu peux proposer la création d'un compte utilisateur, via une connexion par Facebook/Twitter ou autre.

Autre question: en ce qui concerne les injections sql, j'ai cru comprendre qu'elles ne sont pas possibles avec les requêtes préparées mais seulement dans le cas ou des données passent par l'url.

Est-ce que c'est juste ?

Nooooon ! Les failles SQL peuvent arriver dès que un des paramètres de la requête provient de l'utilisateur, que ce soit en GET ou en POST. Toujours préparer les requêtes dont l'un des paramètres dépend de l'utilisateur.
Édit : je pense que j'ai mal compris ta question, en fait. Une requête préparée est sécurisée contre les failles SQL quand les données sont envoyées en GET aussi bien qu'en POST, tu n'es évidement pas obligé de passer tous tes paramètres dans l'url.

Par contre tous les autres champs de mon form sont obligatoires, donc à part le htmlspecialchars sur les champs textes au moment de l'affichage, je crois qu'au moment du traitement, je n'ai rien de spécial à vérifier.

En plus de ce que dit ThS, il faut aussi vérifier que les valeurs envoyées sont normales : l'utilisateur, dans tous les cas, peut envoyer des valeurs complètement différentes de celles que tu attends, même si tu utilises des listes déroulantes, ça peut se modifier super facilement.

Never trust user input, c'est pas quelque chose qu'on dit juste parce que ça sonne bien. :)

+0 -1

Never trust user input! je sais mais comme la débutante que je suis, je me crois plus maline !

Et franchement ca devient complique pour moi ! A la base je suis une noob et j'aimerai bien sortir mon truc

Ca m'étonnait aussi que ce soit si simple ! Donc je dois vérifier chacun de mes champs…

Failles CSFR connais pas ! Je reviens !

Dans l'ensemble, encore plus de questions, pas grave j'ai l'habitude!

A chaque fois que je crois avoir fini ou presque, hop re-problème ou re-question !!! Failles CSFR: jamais entendu parlé ! Encore beaucoup de lecture en perspective ! Pour les failles 'visibles' , je vous montrerez le code final, au moins j'aurai une vraie idée de ce que j'ai manqué !

Et pour limiter le nombre de comm par campiings ? pas avec l'IP aparement, alors comment ??

+0 -0

Et pour limiter le nombre de comm par campiings ? pas avec l'IP aparement, alors comment ??

clenake

Comme le disait Thunderseb, le mieux reste encore de le faire avec un système de comptes membres. Pour commenter, un membre doit forcément avoir un compte.

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte