Tại sao mọi người không sử dụng CFLOGIN? Tôi nhớ có vấn đề với nó với CF7 một vài tháng trước, nhưng tôi không thể nhớ những gì đã sai với nó.Tại sao mọi người không sử dụng <CFLOGIN>?
Trả lời
Tôi sử dụng cflogin mọi lúc và nó hoạt động tốt. Nó có thể là một chút khôn lanh để có được làm việc theo cách bạn thích, nhưng những lợi ích là rất lớn. Có thể tinh chỉnh ứng dụng của bạn với vai trò người dùng sẽ chăm sóc phần lớn quyền tùy chỉnh dựa trên quyền của tôi. Đã từng có một số vấn đề về quản lý phiên làm cho việc này trở nên khó khăn. Việc bật các phiên j2ee dường như làm cho hầu hết các vấn đề đó biến mất.
Một số khung phổ biến không tương thích với cflogin, vì vậy đó có thể là một lý do khiến bạn không thấy nhiều. Họ có xu hướng có cách tiếp cận riêng để đảm bảo các tính năng ứng dụng.
Tôi nghĩ rất nhiều người cảm thấy thất vọng vì nó hơi kỳ quặc và họ từ bỏ nó. Những người khác có nhu cầu bảo mật phức tạp hơn mà không được giải quyết hoàn toàn bởi cflogin, vì vậy họ sẽ viết ra hệ thống riêng của họ. Cụ thể, không có cách nào dễ dàng để giải quyết quyền theo nội dung nội dung.
Vấn đề duy nhất tôi gặp phải là có vai trò trong CF8. Nó được thực hiện rực rỡ, và một chút độc ác mà nó không hoạt động như nó khá. Có lẽ trong CF9.
Trong mọi trường hợp, hãy xây dựng hệ thống dựa trên vai trò của riêng bạn (gán cho người dùng biến phiên có danh sách cấp truy cập được phân tách bằng dấu phẩy mà hệ thống có thể kiểm tra) không quá khó để thực hiện và tôi đã vượt qua nó.
Một trong những điều tốt đẹp về cfLogin đó có lẽ vẫn còn giá trị sử dụng là cách nó gắn vào màn hình Server để xem có bao nhiêu người đang đăng nhập, vv
Điểm trên về việc sử dụng jsession là sự thật, đó là đáng làm trong tất cả các ứng dụng cf. Một trong những điều tốt nhất tôi đã kéo mình để làm việc theo cách tôi muốn.
Tôi không thể làm cho nó hoạt động với xác thực NTLM * ở tất cả * (trên CF7 anyway). FWIW, nó không hoạt động theo cách nó được quảng cáo. Tôi thường giả mạo nó vào chạy một cách chính xác, bởi vì tôi muốn sử dụng bảo mật dựa trên vai trò, nhưng thẻ chính nó chỉ đơn giản là bị hỏng. – Tomalak
Trong trường hợp của tôi (giả sử cho một số người khác nữa) lý do chính là chuyển từ nền tảng khác, nói PHP. Tôi có nghĩa là tôi đã đã có một số kiến thức và thói quen trong phát triển ACL và bắt đầu sử dụng chúng trong CF.
Tôi biết cách làm cho nó tiện dụng cho người dùng, linh hoạt cho nhà phát triển và bảo mật và không thực sự cần để chuyển sang cflogin.
Đôi khi điều tương tự cũng xảy ra với các nội dung khác, trong hầu hết các trường hợp, tôi muốn triển khai xác thực phía máy khách bằng cách sử dụng JS riêng thay vì sử dụng cfform/cfinput.
CFLogin không được sử dụng vì 3 lý do.
Đầu tiên là, hơi gập ghềnh, hơi lạ và không hoạt động được bao nhiêu. Bạn đặt một số mã ở đây, và nếu một người dùng không đăng nhập nó chạy nó ... đó chỉ là lẻ, bạn biết không? Nó đã không giúp đỡ rằng có một số lỗi sớm, một trong hai.
Thứ hai, trong khi nó có các tính năng bảo mật cơ bản cần thiết cho ứng dụng web, nó không còn nữa. Bạn có thể không thực sự mở rộng nó một cách dễ dàng. Ai nói đó là cách mọi người muốn nó?
Thứ ba và thực tế nhất là vì mọi người đã giải quyết được sự cố đó.Khu vực vấn đề bảo mật một ứng dụng, xác thực và ủy quyền đã được nghĩ ra trong cộng đồng đủ lâu và hầu hết mọi người đều biết cách thực hiện nó. CFLogin đang phát minh lại cánh cửa. Đó là quá ít, quá muộn.
Bây giờ, đó không phải là để nói rằng không ai sử dụng nó. Cá nhân tôi đã sử dụng nó một vài lần với thành công cơ bản, nhưng không có lý do gì để rung chuông. Đối với hầu hết các ứng dụng của tôi, nó có ý nghĩa hơn để không sử dụng CFLogin. Các lĩnh vực vấn đề là theo cách này hay điều đó, và CFLogin không phải lúc nào cũng giải quyết nó một cách thông minh nhất.
Hãy nhớ rằng CFLOGIN có giao diện với HTTP cơ bản Auth nơi nó có thể tiếp tục gửi UserID và mật khẩu của nó ngay cả sau khi bạn đã gọi CFLOGOUT.
Tôi biết điều này đã khiến một số người dùng nâng cao thoát khỏi nó.
Dưới đây là một đoạn trích từ LiveDocs
Chú ý: Nếu bạn sử dụng web dựa trên máy chủ xác thực hay bất kỳ hình thức xác thực sử dụng một tiêu đề ủy quyền cơ bản HTTP , trình duyệt tiếp tục gửi xác thực thông tin cho ứng dụng của bạn cho đến khi người dùng đóng trình duyệt hoặc trong một số trường hợp, tất cả cửa sổ trình duyệt đang mở. Do đó, sau khi người dùng đăng xuất và ứng dụng của bạn sử dụng thẻ cflogout , cho đến khi trình duyệt đóng, cấu trúc cflogin trong thẻ cflogin sẽ chứa tên người dùng và mật khẩu đăng nhập . Nếu người dùng đăng nhập ra ngoài và không đóng trình duyệt, một người dùng khác có thể truy cập các trang với thông tin đăng nhập của người dùng đầu tiên.
Chỉ cần nhận ra, đây không phải lỗi của CFLOGIN. Đây là vấn đề thường gặp với Xác thực cơ bản HTTP, tìm kiếm stackoverflow – Henry
Bởi vì nó (vẫn) có lỗi nghiêm trọng, như thế này:
http://www.raymondcamden.com/index.cfm/2009/8/7/Watch-out-for-this-CFLOGIN-Bug
đọc nhận xét tôi đã đăng ở đó. "Dấu hai chấm trong URL phải được mã hóa thành% 3A, khi đó cflogin.password hoạt động!" – Henry
- 1. Tại sao mọi người không thích chú thích?
- 2. tại sao KHÔNG MỌI MỌI mặc định là UTF-8?
- 3. Tại sao mọi người sử dụng ATL cho lập trình COM?
- 4. Pthread: Tại sao mọi người lại bận tâm sử dụng pthread_exit?
- 5. Tại sao mọi người sử dụng i = i + 1 thay vì i + +?
- 6. Tại sao mọi người gọi jQuery $ alias là 'nhà máy'?
- 7. Tại sao mọi người liên tục khuyên bạn nên sử dụng appConfig thay vì sử dụng tệp Cài đặt? (.NET)
- 8. Tại sao mọi người sử dụng enums trong C++ như hằng số trong khi họ có thể sử dụng const?
- 9. Tại sao IIS Express sử dụng <system.web> chứ không phải <system.webServer>?
- 10. Tại sao tôi không sử dụng @BatchSize trên mọi mối quan hệ tải kém?
- 11. Tại sao mọi người không ngừng phát triển các trang web để phục vụ cho IE6?
- 12. Tại sao tôi không thể mở rộng túi của mọi người trong nowjs?
- 13. Tại sao ToArray() được sử dụng khi sử dụng string.Join với Danh sách <string>?
- 14. Tại sao mọi người nghĩ rằng người duy nhất tạo ra C++ là Bjarne Stroustrup?
- 15. Tại sao ai đó sử dụng toán tử << trong khai báo enum?
- 16. Tại sao một người sử dụng lại 'undefined`?
- 17. Tại sao một người sử dụng "git merge -s ours"?
- 18. Tại sao {} <function() {}?
- 19. Tại sao sử dụng cả <% và <% = trong các chế độ xem?
- 20. Tại sao "android:" ở khắp mọi nơi?
- 21. Tại sao sử dụng NSObjectController
- 22. tại sao sao băng 0.6.0 quấn mọi thứ vào (hàm() {...})
- 23. Tại sao mọi người tạo cấu trúc thư mục như edu.mit.stk trong Java?
- 24. Tại sao không ai sử dụng INotifyPropertyChanging?
- 25. Tại sao jQuery không sử dụng JSDoc?
- 26. Tại sao tôi nên sử dụng <ARGV> hoặc <> thay vì <STDIN> trong Perl?
- 27. Tại sao #include <stdio.h> không bắt buộc phải sử dụng printf()?
- 28. Tại sao mọi người nói rằng Java có khả năng mở rộng hơn so với python?
- 29. Nếu SqlDataAdapter sử dụng trình đọc dữ liệu nội bộ, tại sao mọi người nói rằng sử dụng SqlDataReader nhanh hơn?
- 30. Tại sao Func <> và Expression <Func<>> Hoán đổi cho nhau? Tại sao một người làm việc trong trường hợp của tôi?
các "vấn đề với quản lý phiên" là gì? Bạn có nhớ? – Henry
Các vấn đề tôi mơ hồ nhớ là việc đóng tất cả các trình duyệt sẽ không chấm dứt xác thực của bạn nếu bạn không sử dụng các phiên j2ee và trên các trang có khối lượng lớn (một lần nữa, không có phiên j2ee), thông tin đăng nhập có thể bị chiếm đoạt khi tái sử dụng. – anopres