¿Por qué las personas no usan CFLOGIN? Recuerdo haber tenido problemas con CF7 hace algunos meses, pero no podía recordar qué estaba mal con eso.¿Por qué la gente no usa <CFLOGIN>?
Respuesta
Uso cflogin todo el tiempo y funciona muy bien. Puede ser un poco complicado trabajar como lo desee, pero los beneficios son enormes. Ser capaz de ajustar su aplicación con roles de usuario se encarga de la mayor parte de mi personalización basada en derechos. Solía haber algunos problemas con la gestión de sesiones que dificultaban el trabajo. Activar las sesiones de j2ee parece hacer que la mayoría de esos problemas desaparezcan.
Algunos de los marcos populares no son compatibles con cflogin, por lo que esa podría ser una de las razones por las que no se ve mucho. Tienden a tener su propio enfoque para asegurar las características de la aplicación.
Creo que mucha gente se siente frustrada porque es un poco peculiar y se dan por vencidos. Otros tienen necesidades de seguridad más complicadas que no son tratadas completamente por cflogin, por lo que terminan escribiendo su propio sistema. Específicamente, no existe una manera fácil de manejar los derechos por contenido.
El único problema que he tenido es con los roles en CF8. Está brillantemente implementado, y un poco cruel que no funciona como debería. Quizás en CF9.
En cualquier caso, construir su propio sistema basado en roles (asignarle al usuario una variable de sesión con una lista de niveles de acceso separados por comas con los que el sistema pueda comparar) no es demasiado difícil y lo superé.
El bueno de cfLogin que es probable que todavía vale la pena utilizar es la forma en que los lazos en el monitor del servidor para ver cuánta gente está en el sistema, etc.
El punto anterior sobre el uso del jsession es cierto, es vale la pena hacerlo en todas las aplicaciones cf. Una de las mejores cosas por las que me obligué a trabajar para lograr el funcionamiento que quería.
No puedo hacer que funcione con autenticación NTLM * en absoluto * (en CF7 de todos modos). FWIW, simplemente no funciona de la forma en que se anuncia. Por lo general, simulo que se ejecute correctamente, porque quiero usar seguridad basada en roles, pero la etiqueta misma simplemente se rompe. – Tomalak
En mi caso (supongamos que para otras personas también), la razón principal es pasar de otra plataforma, por ejemplo PHP. Quiero decir que ya tengo tengo algunos conocimientos y hábitos en el desarrollo de ACL y comencé a usarlos en CF.
Sé cómo hacer que sea práctico para el usuario, flexible para el desarrollador y seguro y no realmente necesita para cambiar a cflogin.
A veces sucede lo mismo con otras cosas, digamos que en la mayoría de los casos prefiero implementar la validación del lado del cliente usando el propio JS en lugar de usar cfform/cfinput.
CFLogin no se usa por 3 motivos.
Primero, es un poco delicado, un poco extraño, y no funciona, cuántos pensarían. Pones un código aquí, y si un usuario no está conectado lo ejecuta ... eso es simplemente extraño, ¿sabes? Tampoco ayudó el hecho de que hubo algunos errores al principio.
Segundo, si bien tiene las características de seguridad básicas requeridas para una aplicación web, no va más allá. Realmente no puedes extenderlo fácilmente. ¿Quién puede decir que así es como todos lo quieren?
Tercera, y lo más realista, es porque las personas ya han resuelto ese problema.El área problemática de asegurar una aplicación, autenticación y autorización ha sido pensada en la comunidad el tiempo suficiente y la mayoría de las personas saben cómo hacerlo. CFLogin está reinventando la puerta. Es muy poco, demasiado tarde.
Ahora, eso no quiere decir que nadie lo use. Personalmente lo he usado algunas veces con éxito básico, pero no hay razón para sonar. Para la mayoría de mis aplicaciones, tiene más sentido no usar CFLogin. Los dominios problemáticos son de esta o de otra manera, y CFLogin no siempre lo resuelve de la manera más inteligente.
Tenga en cuenta que CFLOGIN tiene un inconveniente con la autenticación HTTP básica, donde puede seguir enviando su ID de usuario y contraseña incluso después de haber llamado a CFLOGOUT.
Sé que esto ha alejado a algunos usuarios avanzados.
Aquí es un extracto de LiveDocs
Precaución: Si utiliza basada en servidor autenticación web o cualquier forma autenticación que utiliza un encabezado básico HTTP Authorization , el navegador continúa enviando la autenticación información a su aplicación hasta el el usuario cierra el navegador, o en el en algunos casos, todas las ventanas abiertas del navegador. Como resultado, después de que el usuario cierra la sesión y su aplicación utiliza la etiqueta cflogout , hasta que el navegador se cierra, la estructura cflogin en la etiqueta cflogin contendrá ID de usuario del usuario que ha iniciado sesión y contraseña. Si un usuario inicia la sesión y no cierra el navegador, otro usuario puede acceder a las páginas con el primer inicio de sesión del usuario.
Acaba de darse cuenta, esto no es culpa de CFLOGIN. Este es un problema común con la autenticación básica de HTTP, search stackoverflow – Henry
Debido a que (todavía!) Tiene errores graves, como éste:
http://www.raymondcamden.com/index.cfm/2009/8/7/Watch-out-for-this-CFLOGIN-Bug
lea el comentario que publiqué allí. "¡Los dos puntos en la URL deberían haberse codificado a% 3A, entonces la contraseña cflogin funciona!" – Henry
- 1. ¿Por qué la gente usa _? como un sufijo identificador?
- 2. ¿Por qué la gente usa algo como char * y buf?
- 3. ¿Para qué usa la gente la carga de clases?
- 4. ObjectSpace: ¿qué es y cómo lo usa la gente?
- 5. En Java, ¿por qué la gente antepone campos con `this`?
- 6. ¿Por qué la gente usa i = i + 1 en lugar de i ++?
- 7. Cómo saber cuánta gente usa mi software
- 8. ¿Por qué la biblioteca Loki no se usa más ampliamente?
- 9. ¿Por qué IIS Express usa <system.web> y no <system.webServer>?
- 10. ¿Por qué jQuery no usa JSDoc?
- 11. ¿Por qué Web Sockets no usa SOAP?
- 12. ¿Por qué no se usa clang más?
- 13. ¿Qué piensa la gente del fósil DVCS?
- 14. ¿por qué la gente no envuelve DependencyProperties en una clase genérica?
- 15. ¿Qué modo usa la gente cuando usa Emacs para editar páginas web que contienen CSS, javascript y HTML?
- 16. ¿Por qué Matplotlib no usa la fuente .ttf que proporciono?
- 17. ¿Por qué CPython no usa `sphinx.autodoc` para la biblioteca estándar?
- 18. ¿Por qué <META HTTP-EQUIV = "Content-Script-Type" ...> no se usa?
- 19. ¿Por qué se usa ToArray() cuando se usa cadena.Únete con una lista <string>?
- 20. ¿por qué se usa osgi?
- 21. ¿Por qué Android usa Java?
- 22. ¿Por qué SortedList y List usan array y por qué LinkedList no se usa mucho?
- 23. ¿Por qué HTTP usa TCP?
- 24. ¿Por qué Heroku usa Postgresql?
- 25. ¿Por qué se usa suhosin?
- 26. ¿Qué es LiteralControl? ¿Por qué se usa?
- 27. ¿Por qué la gente corre Java GUI en la cola de eventos
- 28. ¿La mayoría de la gente usa .NET's SqlMembershipProvider, SqlRoleProvider y SqlProfileProvider?
- 29. ¿Por qué se usa console.log? ¿Qué hace?
- 30. ¿Por qué el enlace C++ no usa prácticamente ninguna CPU?
¿Cuáles son los "problemas con la gestión de sesiones"? ¿Te acuerdas? – Henry
Los problemas que recuerdo vagamente fueron que cerrar todos sus navegadores no terminaría su autenticación si no usara sesiones j2ee y que en sitios de alto volumen (de nuevo, sin sesiones j2ee), las credenciales de inicio de sesión podrían ser secuestradas cuando un cfid reutilizado – anopres