Question

Si je dois suivre Que devrait-on faire? Un développeur connaît avant de créer un site Web public? sur l'authentification, quelles sont les options dont je dispose?

Je n’ai jamais utilisé PEAR et je ne vais pas commencer. J'ai lu des articles sur phpGALC , mais je n'ai pas encore essayé.

Après l’authentification, les droits et le niveau d’accès entrent en jeu. Je ne suis pas un grand partisan de l’utilisation d’une seule valeur tinyint qui décide de ce qu’un utilisateur peut ou ne peut pas faire, à part qu’il n’est pas très flexible. J'ai récemment écrit un système de sections dans lequel je spécifie le type d'accès auquel chaque type d'utilisateur a accès, mais y a-t-il quelque chose de mieux?

Si vous voulez un langage, alors PHP5.

Était-ce utile?

La solution

  

Je ne suis pas un grand partisan de l’utilisation d’une seule valeur tinyint qui souhaite quel   l’utilisateur peut et ne peut pas faire, outre sa   pas très flexible.

Cela dépend ... Vous faites référence à l’utilisation de la valeur sous forme d’entier ou de champ de bits?

Si vous l'utilisez simplement comme numéro (l'utilisateur de niveau 5 a toutes les capacités des utilisateurs de niveau 1 à 4, plus un peu plus), alors, oui, ce n'est pas très flexible.

Si vous l’utilisez en tant que champ de bits, il vous donne 8 (ensembles de) fonctionnalités qui peuvent être activées ou désactivées dans n’importe quelle combinaison pour n’importe quel utilisateur. J'appellerais ça flexible. Et si 8 capacités ne vous suffisent pas, il est simple de changer le tinyint (8 bits) en un petit (16 bits / capacités), un int (32 bits) ou un bigint (64 bits), ce qui devrait être plus que suffisant pour à peu près n'importe quelle application que la plupart d'entre nous sont susceptibles d'écrire.

Autres conseils

L’authentification est assez simple. L'autorisation, via une liste de contrôle d'accès ou autre, peut être complexe.

L'authentification consiste généralement à faire correspondre un nom d'utilisateur et un mot de passe aux informations d'identification stockées. Il suffit d'utiliser SSL et les mots de passe de hachage en utilisant un sel.

L'autorisation peut être une bête et la solution dépend de vos besoins. Vous pouvez essayer PhpGALC et le composant ACL de Zend Framework. Les deux options ont des rôles, des ressources et des privilèges facultatifs bien qu'ils portent tous un nom différent. La liste de contrôle d'accès Zend est plus simple et générique (les règles peuvent être définies simplement dans votre code et ne nécessitent pas de base de données). Si vos rôles, ressources et privilèges ne sont pas statiques, vous devez écrire un code avec la liste de contrôle d'accès Zend pour renseigner la liste de contrôle d'accès à partir de votre magasin de données. Le gros avantage de phpGALC est qu’il dispose d’une interface graphique Web. J'ai trouvé l'interface graphique peu pratique, mais si vous ne comprenez pas vraiment votre liste de contrôle d'accès, il peut s'avérer dangereux d'apporter des modifications directement dans la base de données, compte tenu des complexités de la liste de contrôle d'accès telles que l'héritage des rôles et des ressources. Gardez à l'esprit que la liste de contrôle d'accès Zend peut être utilisée seule, sans autres dépendances avec Zend Framework, à l'exception de Zend Exception.

ACL et Auth sont les éléments sur lesquels je travaille en ce moment même. J'utilise CakePHP , et fournit un module complet (bien que pas simple) pour ACL, ainsi qu'un façon de faire l'authentification. Je suis aussi intéressé par les réponses.

Ce que j'ai rassemblé:

  • Apprenez à valider les entrées, en particulier la différence entre les listes noires et les listes blanches
  • Examinez attentivement votre modèle de validation de messagerie
  • Déterminez quelles langues devrez-vous prendre en charge (petits accents embêtants, tildes, etc., qui gênent la création de noms, par exemple A agaza ou Al 233).
  • Faites-le vous-même ou pré-construit?
  • ACL: restez simple, sinon vous risquez de vous engloutir.
  • Attention, CSRF et XSRF !

La plupart des frameworks ont un module d’authentification intégré. Donc, vous voudrez peut-être utiliser Zend, CakePHP, Code Ignighter, etc.

La différence entre échapper et coder des données est également source de confusion. Les choses sont beaucoup plus flexibles lorsque les données sont codées , puis échappées.

L’authentification de l’utilisateur garantit que si un utilisateur essaie d’accéder à une page dont l’application interdit l’accès gratuit, elle le redirige vers la page de connexion et, une fois la connexion établie, revient à la page demandée. Une telle implémentation de l’autorisation par défaut de cake est expliquée dans les pièges, approches et manières suivantes.

http://enbake.com/cakephp-user-authentication-auth-component

Le cadre ne vous restreint pas. Mais vous accorde plutôt la vitesse de développement avec les modules existants et un code plus organisé. Peut vous montrer des cadres de comparaison b / w si cela vous intéresse.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top