2009-04-23 5 views
1

Cette question est destinée à être une discussion des opinions personnelles des personnes lors de la gestion des entrées utilisateur.Commandes d'analyse à partir de la saisie de l'utilisateur

Cette partie du projet sur lequel je travaille gère la saisie de l'utilisateur d'une manière similaire à une discussion IRC. Par exemple, il existe des commandes set et autres, pour chatter, exécuter des actions, etc.

Maintenant, j'ai plusieurs options à choisir pour analyser cette entrée. Je pourrais aller avec des expressions régulières, je pourrais l'analyser directement (c'est-à-dire une grande déclaration avec toutes les commandes supportées, en vérifiant simplement le premier nombre de caractères de l'entrée utilisateur), ou même devenir fou et ajouter un analyseur similaire à Flex/Implémentations de Bison. Une autre option que je considérais était de définir toutes les commandes dans un fichier XML pour les séparer de l'implémentation du code.

Alors, quelles sont les pensées de la communauté?

+0

Ce site est conçu pour encourager de bonnes réponses objectives. Je soupçonne que formuler votre question pour être une discussion explicite sur les opinions personnelles se révélera mal. Je suggérerais de le reformuler en «Meilleures pratiques d'entrée des utilisateurs - PHP» ou quelque chose de plus concret et objectivement mesurable. –

+0

Merci, je l'ai mis à jour en conséquence. – espais

Répondre

1

Je voudrais aller avec un bon sac mixte de tous.

De toute évidence, vous devrez nettoyer l'entrée. Assurez-vous qu'il n'y a pas de mauvaises choses là-bas, selon où l'entrée va empêcher l'injection SQL, XSS, CSRF etc ...

Mais lorsque votre entrée est propre, vous pouvez aller avec une expression rationnelle qui attrape ceux qui sont destinés à commande et obtient toutes les sous-commandes nécessaires (paramètres de commande, etc.) et ensuite avoir une sorte d'instruction dispatcher-switch ou similaire.

Il n'y a vraiment pas de meilleure pratique de couverture ici, à part toujours toujours et quadruple-toujours en s'assurant que l'entrée de l'utilisateur est nettoyée. En dehors de cela, aller avec ce qui semble le mieux adapté à votre cas. De toute évidence, il y a ceux qui disent que si vous avez un problème et que vous envisagez d'utiliser reg exps pour résoudre ce problème, vous avez deux problèmes, mais utilisé avec précaution, ils sont la meilleure chose de tous les temps. Rappelez-vous juste que les monstres regexp peuvent lire très rapidement une mauvaise lisibilité.

Questions connexes