Perché le persone non usano CFLOGIN? Ricordo di aver avuto problemi con CF7 alcuni mesi fa, ma non riuscivo a ricordare cosa c'era che non andava.Perché le persone non usano <CFLOGIN>?
risposta
Io uso cflogin tutto il tempo e funziona benissimo. Può essere un po 'complicato lavorare come preferisci, ma i benefici sono enormi. Essere in grado di mettere a punto l'applicazione con i ruoli utente si prende cura della maggior parte della personalizzazione basata sui diritti. Ci sono stati alcuni problemi con la gestione delle sessioni che ha reso difficile lavorare con. L'attivazione delle sessioni di j2ee sembra far scomparire la maggior parte di questi problemi.
Alcuni dei framework popolari non sono compatibili con cflogin, quindi questa potrebbe essere una delle ragioni per cui non la si vede molto. Tendono ad avere il proprio approccio per proteggere le funzionalità dell'applicazione.
Penso che molte persone si sentano frustrate perché è un po 'bizzarro e ci rinunciano. Altri hanno esigenze di sicurezza più complesse che non vengono affrontate completamente da cflogin, quindi finiscono per scrivere il proprio sistema. Nello specifico, non esiste un modo semplice per gestire i diritti per asset di contenuto.
L'unico problema che ho riscontrato riguarda i ruoli in CF8. È implementato brillantemente e un po 'crudele che non funziona come dovrebbe. Forse in CF9.
In ogni caso, creare il proprio sistema basato sui ruoli (assegnare all'utente una variabile di sessione con un elenco separato da virgole di livelli di accesso che il sistema può verificare) non è troppo difficile da fare e l'ho superato.
L'unica cosa bella di cfLogin che probabilmente è ancora la pena di utilizzo è come si collega al monitor del server per vedere quante persone sono loggato, ecc
Il punto sopra sull'utilizzo del jsession è vero, è vale la pena fare in tutte le app cf. Una delle cose migliori che ho trascinato per lavorare come volevo.
Non riesco a farlo funzionare con autenticazione NTLM * affatto * (su CF7 comunque). FWIW, semplicemente non funziona nel modo in cui è pubblicizzato. Di solito faccio finta di funzionare correttamente, perché voglio usare la sicurezza basata sui ruoli, ma il tag stesso è semplicemente rotto. – Tomalak
Nel mio caso (supponiamo anche per alcune altre persone) il motivo principale si sta spostando da un'altra piattaforma, ad esempio PHP. Voglio dire che ho già avuto alcune conoscenze e abitudini nello sviluppo ACL e iniziato a usarli in CF.
So come renderlo utile per l'utente, flessibile per sviluppatore e sicuro e non è necessario passare a cflogin.
A volte lo stesso accade con altre cose, ad esempio nella maggior parte dei casi preferisco implementare la validazione lato client usando il proprio JS invece di usare cfform/cfinput.
CFLogin non viene utilizzato per 3 motivi.
primo, è un po 'permaloso, un po' strano, e non funziona quanti potrebbe pensare. Metti un po 'di codice qui, e se un utente non è loggato lo esegue ... è solo strano, sai? Non è stato d'aiuto il fatto che ci fossero alcuni bug all'inizio.
Secondo, mentre ha le funzionalità di sicurezza di base necessarie per un'applicazione Web, non va oltre. Non puoi davvero estenderlo facilmente. Chi dice che è così che tutti lo vogliono?
Terzo e, più realisticamente, è perché le persone hanno già risolto il problema.L'area problematica di protezione di un'applicazione, autenticazione e autorizzazione è stata pensata nella comunità abbastanza a lungo e molte persone sanno come farlo. CFLogin sta reinventando la porta. È troppo poco, troppo tardi.
Ora, questo non vuol dire che nessuno lo usi. Personalmente l'ho usato poche volte con un successo di base, ma non ho motivo di suonare un campanello. Per la maggior parte delle mie applicazioni, ha più senso non utilizzare CFLogin. I domini del problema sono in questo o in altri, e CFLogin non risolve sempre nel modo più intelligente.
Ricorda che CFLOGIN ha un problema con l'autenticazione HTTP di base in cui può continuare a inviare il suo ID utente e la password anche dopo aver chiamato CFLOGOUT.
So che questo ha allontanato alcuni utenti avanzati.
Ecco un estratto da LiveDocs
Attenzione: se si utilizza server di autenticazione basata su web o qualsiasi forma di autenticazione che utilizza un HTTP intestazione di base di autorizzazione, il browser continua a inviare l'autenticazione informazioni per la tua applicazione fino l'utente chiude il browser, o in alcuni casi, tutte le finestre del browser aperte. Di conseguenza, dopo che l'utente si disconnette e l'applicazione utilizza il tag cflogout , fino a quando il browser si chiude, la struttura cflogin nel tag cflogin conterrà UserID dell'utente loggato-out e la password. Se un utente registra e non chiude il browser, un altro utente può accedere alle pagine con il primo accesso dell'utente.
Appena realizzato, questo non è colpa di CFLOGIN. Questo è un problema comune con l'autenticazione di base HTTP, lo stackoverflow della ricerca – Henry
Perché (ancora!) Ha gravi bug, come questo:
http://www.raymondcamden.com/index.cfm/2009/8/7/Watch-out-for-this-CFLOGIN-Bug
legge il commento che ho postato lì. "I due punti dell'URL avrebbero dovuto essere codificati in% 3A, quindi funziona cflogin.password!" – Henry
- 1. Perché le persone usano ProjectData
- 2. Perché le persone non usano i tetraedri per le skybox?
- 3. pixel.gif, perché le persone lo usano?
- 4. Perché le persone usano Command-line invece di IDE?
- 5. Perché le persone usano ATL per la programmazione COM?
- 6. Perché le persone usano i = i + 1 invece di i ++?
- 7. In che modo le persone usano Yeoman?
- 8. C++ perché le persone non usano maiuscole nel nome dei file di intestazione?
- 9. Capire quante persone usano il mio software
- 10. Perché le persone usano bouncycastle invece del provider JCE integrato in Java? Qual è la differenza?
- 11. Quali tecniche/strategie usano le persone per costruire oggetti in C (non C++)?
- 12. Perché i programmatori C++ usano! = Invece di <
- 13. Che modalità usano le persone quando usano Emacs per modificare pagine Web che contengono CSS, javascript e HTML?
- 14. Perché alcune persone usano il metodo Class # invece di Class.method nella corrispondenza?
- 15. In Java, quando si usano i bitshifts, perché 1 << 32! = 1 << 31 << 1?
- 16. Quale hosting normalmente usano le persone per pubblicare il sito Web Django?
- 17. JavaScript Speech-to-Text per le persone non vedenti
- 18. Perché le persone minificano css e javascript, quando abbiamo gzip?
- 19. Le fabbriche astratte usano "nuovo"?
- 20. Perché le persone utilizzano il parametro proprietario predefinito su Nessuno in __get__?
- 21. OpenGL - Perché lo stack matrix è stato rimosso e cosa stanno usando le persone adesso?
- 22. Perché GCC e Clang non usano cvtss2sd [memoria]?
- 23. HTML5: perché le persone non utilizzano "ContentEditable" per i loro siti Web?
- 24. Perché le persone spediscono i log a Logstash con NXlog e non con Logstash stesso?
- 25. Perché Puppet e Chef usano Ruby?
- 26. Perché i newtypes non usano i tratti dal tipo interno?
- 27. C# Perché i metodi parziali usano ref, ma non out?
- 28. Le CTE usano spazi in tempdb?
- 29. Come posso rilevare e tenere traccia delle persone che usano OpenCV?
- 30. Migliorare le immagini per persone daltonici
Quali sono i "problemi con la gestione della sessione"? Ti ricordi? – Henry
I problemi che ricordo vagamente erano che chiudere tutti i tuoi browser non avrebbe interrotto l'autenticazione se non avessi usato le sessioni j2ee e quello su siti di grandi volumi (ancora, senza sessioni j2ee), le credenziali di accesso potevano essere dirottate quando un cfid era riutilizzato. – anopres