Domanda

Se devo seguire Cosa dovrei uno sviluppatore conosce prima di costruire un sito web pubblico? in fase di autenticazione, quindi quali opzioni ho?

Non ho mai usato PEAR e non sto per iniziare. Ho letto di phpGALC ma non ho ancora provato.

Dopo l'autenticazione entrano in gioco i diritti / il livello di accesso. Non sono un grande fan dell'uso di un singolo valore tinyint che decide cosa un utente può e non può fare, oltre a non essere molto flessibile. Di recente ho scritto un sistema di sezioni in cui specifico a quale tipo di accesso ha accesso ogni tipo di utente, ma c'è qualcosa di meglio?

Se vuoi una lingua, allora PHP5.

È stato utile?

Soluzione

  

Non sono un grande fan dell'uso di un singolo valore tinyint che merita a   l'utente può e non può fare, oltre al suo   non molto flessibile.

Dipende ... Ti riferisci all'utilizzo del valore come numero intero o come campo bit?

Se lo stai usando semplicemente come un numero (l'utente di livello 5 ha tutte le capacità degli utenti di livello 1-4, più un po 'di più), allora sì, non è molto flessibile.

Se lo usi come bitfield, ti offre 8 (set di) funzionalità che possono essere attivate o disattivate in qualsiasi combinazione per qualsiasi utente. Lo definirei flessibile. E, se 8 funzionalità non sono sufficienti per te, è banale cambiare il tinyint (8 bit) in smallint (16 bit / capacità), int (32 bit) o ??bigint (64 bit), che dovrebbe essere superiore a sufficiente per qualsiasi applicazione, la maggior parte di noi è probabile che scriva.

Altri suggerimenti

L'autenticazione è abbastanza semplice. L'autorizzazione, attraverso un ACL o altro, può essere complessa.

L'autenticazione di solito corrisponde solo a un nome utente e una password con le credenziali archiviate. Usa solo password SSL e hash usando un salt.

L'autorizzazione può essere una bestia e la soluzione dipende dalle tue esigenze. Potresti provare PhpGALC e il componente ACL di Zend Framework. Entrambe le opzioni hanno ruoli, risorse e privilegi opzionali sebbene siano tutte denominate diversamente. Zend ACL è più semplice e generico (le regole possono essere definite semplicemente nel codice e non richiedono un database). Se i tuoi ruoli, risorse e privilegi non sono statici, con l'ACL Zend dovrai scrivere il codice per popolare l'ACL dal tuo archivio dati. Il grande vantaggio di phpGALC è che ha una GUI web. Ho trovato la GUI goffa, ma a meno che tu non capisca davvero il tuo ACL, può essere pericoloso apportare modifiche direttamente nel database considerando le complessità ACL come l'ereditarietà di ruoli e risorse. Tieni presente che Zend ACL può essere utilizzato da solo senza altre dipendenze di Zend Framework oltre a Zend Exception.

ACL e Auth sono le cose su cui sto lavorando proprio in questo momento. Sto utilizzando CakePHP al momento e fornisce un modulo esteso (anche se non semplice) per ACL, e un semplice modo di fare l'autenticazione. Sono interessato anche alle risposte.

Cosa ho raccolto:

  • Impara a convalidare l'input, in particolare la differenza tra liste nere e liste bianche
  • Valuta attentamente il modello di convalida della tua email
  • Considera quali lingue dovrai supportare (piccoli fastidiosi accenti, tilde e simili si intromettono nei nomi, ad esempio Añagaza o Alérta).
  • Roll-your-own o prebuilt?
  • ACL: mantienilo semplice o potrebbe ingoiarti per intero.
  • Attento a CSRF e XSRF !

La maggior parte dei framework ha un modulo di autenticazione integrato. Quindi potresti voler controllare Zend, CakePHP, Code Ignighter, ecc.

Anche una cosa che tende a confondere è la differenza tra la fuga e la codifica dei dati. Le cose sono molto più flessibili quando i dati vengono codificati quindi sono fuggiti.

L'autenticazione utente si assicura che se un utente tenta di accedere a una pagina in cui l'applicazione nega l'accesso gratuito, reindirizza l'utente alla pagina di registrazione e dopo un accesso riuscito riporta alla pagina richiesta. Una di queste implementazioni di Auth di default della torta è spiegata nelle seguenti insidie, approcci e modi di wrt.

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

Il framework non ti rende limitato. Ma piuttosto ti dà la velocità di sviluppo con moduli esistenti e codice più organizzato. Può mostrarti un confronto in b / n di framework se interessati.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top