8797 sujets

Développement web côté serveur, CMS

Bien le bonjour,

Je suis actuellement en train de faire un backend de management pour serveur ftp (marre de tout faire à la main).

J'ai donc codé une interface, jusque là tout vas bien, mon code est fonctionnel et rapide, par contre, vue que je me préoccupe un peu de la sécurité, j'aurais aimé mettre en place des éléments de contrôle des données insérés depuis le formulaire.

J'essaye notamment de faire en sorte que la personne qui créer le nouveau compte ne puisse pas mettre les éléments suivants dans le formulaire:

le "." en début de nom d'utilisateur ou de dossier.
le ".." en début et dans le nom d'utilisateur ou de dossier.
le "./" en début de nom d'utilisateur et dans le nom de dossier.
etc, en gros tous ce qui permettrais de remonter l'arborescence et de mettre la zone sur le serveur.

Pour les regex, ça me pose pas de soucis particulier, je sais les faire, mais là où je bloque, c'est de savoir comment je vais pouvoir les utiliser?

Actuellement j'ai un code qui ressemble à ça:


if(isset ($uid) and $uid != ".[0-9][a-z][A-Z]" or "..[0-9][a-z][A-Z]" or "./[0-9][a-z][A-Z]" or "../[0-9][a-z][A-Z]"){
MONCODE
}else{
MONAUTRECODE
}


PS: Ceci est un exemple et donc les regex ne sont pas bonnes Smiley cligne

Mais je me dit que l'utilisation d'opérateurs AND et OR n'est pas bonne et que je devrais plutôt faire tester la valeur de la variable uid grâce à des regex.

J'avais pensé utiliser preg_match, mais comme j'ai plusieurs pattern à vérifier c'est tout de même pas super efficace.

DONC

Existe t'il un moyen de faire un test de plusieurs regex en une seul fonction?
Modifié par DR I (27 Jul 2011 - 14:02)
Pas faux, je vais faire un preg_match sur ce qui ne doit pas apparaître, comme ça si c'est à 0 ça veux dire que c'est bon, et si c'est à 1 ça veux dire qu'un caractère spécial est présent et ne doit pas apparaître, en plus, avec le paramètre matches je vais pouvoir dire quel est le caractère qui n'est pas autorisé Smiley cligne

Merci JB