Premier pas sous PHP5...

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 : Premier pas sous PHP5...

par d-sam » 28 déc. 2007, 14:42

on peut combiner vos deux façons de voir, en considérant que $_GET['pseudo'] est unsafe, et que $G_pseudo est safe, tout en restant facilement identifiable dans le code comme une var utilisateur ;)

par zeus » 27 déc. 2007, 22:37

Ce que tu dis se tiens, mais j'ai une autre manière de voir ...

Pour moi, tout ce qui est dans $_GET, $_POST, ... n'est pas protégé, et tout ce qui est dans une variable personnelle est valide ;)

Il s'agit de 2 manières de voir différentes mais qui se tiennent ;)

par dimalta5 » 27 déc. 2007, 22:27

La base de la sécurité en PHP, c'est de ne jamais faire confiance à des données provenant de l'utilisateur
Je suis tout à fait d'accord mais on peut les vérifier sans les copier ailleur.

Par exemple si $_GET["category"] doit être numérique:
if(!is_numeric($_GET["category"]))$_GET["category"]=1;//ou message d'erreur
ça marche aussi pour afficher des messages d'erreur quand un formulaire est mal remplis

Pour moi c'est plus court et plus clair justement pour identifier où sont les variables envoyées par l'utilisateur et s'en méfier niveau sécurité.

Ce qui compte c'est de vérifier ce que contient la variable non? pas de l'appeler autrement...

par zeus » 20 déc. 2007, 14:44

moi perso j'utilise directement $_GET["module"] ou autre dans tout mes scripts

ça m'évite de recopier $_GET["module"] dans $module

et en plus de cette façon quand j'utilise une variable envoyé par l'utilisateur je le remarque tout de suite

(parce que $_GET["module"] c'est très identifiable au milieu du code alors que $module ça ressemble à n'importe quelle autre variable que j'aurais définie moi même et qui présente donc moins de danger)
Et qu'en est-il de la protection de ces données ?

La base de la sécurité en PHP, c'est de ne jamais faire confiance à des données provenant de l'utilisateur, donc de ne jamais utiliser directement $_POST, $_GET, ...

par PseT » 20 déc. 2007, 12:56

Merci pour votre aide, je maitrise maintenant :)

par dimalta5 » 17 déc. 2007, 20:00

moi perso j'utilise directement $_GET["module"] ou autre dans tout mes scripts

ça m'évite de recopier $_GET["module"] dans $module

et en plus de cette façon quand j'utilise une variable envoyé par l'utilisateur je le remarque tout de suite

(parce que $_GET["module"] c'est très identifiable au milieu du code alors que $module ça ressemble à n'importe quelle autre variable que j'aurais définie moi même et qui présente donc moins de danger)

par PseT » 15 déc. 2007, 22:01

<? sur mon serveur le script n'est pas interprété, donc la l'erreur est très vitre trouvé.

Merci

[/php]

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

par AB » 15 déc. 2007, 20:41

Merci pour le lien, très instructif.

Il faut donc initialisé toutes les variables sous PHP5.
Oui, et éviter les short tags (<?php plutôt que <?), et faire attention à ne pas déclarer plusieurs fois la même fonction (pour les choses les plus courantes).

par PseT » 15 déc. 2007, 20:05

Merci pour le lien, très instructif.

Il faut donc initialisé toutes les variables sous PHP5.

par Truc » 15 déc. 2007, 19:54

Il se rattache à quelque chose ce message parce que là ça fait un peu "cheveu sur la soupe" :x

Tu peux regarder ce post pour commencer.
Et ensuite expliquer plus clairement ton soui.

Premier pas sous PHP5...

par PseT » 15 déc. 2007, 19:26

Et la je me dit mais, tu es nul...

En effet je me retrouve avec une masse de 'Notice: Undefined variable:'

J'en perd mon latin, suis je obligé d'initialiser chaque variable de mon script?
if (isset($_GET["module"]))
{
	$module=$_GET["module"];
}else{
	$module="";
}
Ca rend le script immédiatement plus lourd, si je doit faire de la sorte pour chaque option de ma page!!

Quelle solution utilisé vous?

Merci