URL để đăng nhập người dùng là gì (aka Làm thế nào để ẩn biểu mẫu đăng nhập?)


10

Tôi không muốn cho phép khách truy cập đăng ký trên trang web của tôi; tuy nhiên, tôi thấy cần phải có một người dùng đã đăng ký cho mục đích thử nghiệm. Ví dụ: tôi sẽ xuất bản một bài viết có quyền truy cập hạn chế để người dùng thử nghiệm của tôi có thể thấy bài viết đó trông như thế nào trên trang web mà không "phát sóng bất kỳ đồ giặt bẩn nào" cho công chúng (ok, tất cả 1 / ngày ai thực sự truy cập ...) .

Vấn đề của tôi tại thời điểm này là cuối cùng tôi đã xóa trang web vì tôi phải xuất bản / hủy xuất bản mẫu đăng nhập người dùng. Hiện tại, tôi 'phá vỡ' vấn đề này bằng cách ẩn biểu mẫu đăng nhập trong danh mục con để nó không hiển thị ngay lập tức đối với khách truy cập thông thường. Có thể tạo một phương pháp thay thế (ví dụ: URL tùy chỉnh) sẽ cho phép người dùng thử nghiệm của tôi xem nội dung được đánh dấu là bị hạn chế mà không thay đổi những gì khách có quyền truy cập công khai sẽ nhìn thấy?

Câu trả lời:


8

Bạn có thể tạo một menu không được xuất bản và đặt một liên kết đến trang đăng nhập người dùng ở đó và đặt tên cho bí danh bất cứ điều gì bạn muốn. Miễn là bạn tắt chức năng đăng ký cho phép trong các tùy chọn quản lý người dùng, bạn sẽ ổn.

Sau đó, chỉ cần cung cấp cho khách hàng của bạn url.

Vì vậy, các bước là:

  1. Tạo một menu mới, đặt tên là Ẩn
  2. Không xuất bản một mô-đun của menu mới
  3. Thêm một mục menu mới, chọn Trình quản lý người dùng và biểu mẫu Đăng nhập
  4. Tiêu đề mục menu Đăng nhập hoặc một cái gì đó để bạn biết nó là gì, nhưng thay đổi bí danh thành một cái gì đó mà ai đó sẽ không đoán được.
  5. Kiểm tra biểu mẫu của bạn bằng cách truy cập yoursite.com/aliasname

10

Như một phần mở rộng cho câu trả lời của Brian Peat:

Nếu bạn đi đến url

domain.com/index.php?option=com_users&view=login

bạn có thể đăng nhập mà không cần thiết lập một mục menu hoặc bất kỳ loại vấn đề xuất bản / chưa xuất bản nào. Điều này có thể được gọi là một phần của một vấn đề trong Joomla vì biết cách của bạn xung quanh bạn vẫn có thể đăng ký / đăng nhập nếu bạn biết cấu trúc url. Có các quy tắc để ngăn chặn điều này nhưng thông thường theo mặc định, bạn chỉ có thể sử dụng các đường dẫn trực tiếp như thế để đến nơi bạn cần đến.

http://www.joomla.org/index.php?option=com_users&view=login

Đây là nơi làm việc, ngay cả trang web Joomla chính không có quyền truy cập trực tiếp để đăng nhập cũng có thể được truy cập như thế.

Quan điểm của tôi là, đảm bảo bạn cũng sử dụng ACL thích hợp, nếu người dùng đã đăng ký "chỉ" của nó thì bất kỳ ai biết cấu trúc của Joomla đều có thể tham gia. Cũng như Brian đã nói chắc chắn rằng việc cho phép đăng ký bị tắt.


Có một URL tương tự cho /index.php?option=com_users&view=logout (mà tôi nghĩ là trực quan nhưng hóa ra là không chính xác)?
bobthechemist

Bạn có nghĩa là để tự động đăng xuất? Nó là một chút lạ, đăng xuất trong j Joomla yêu cầu một số dữ liệu bài, do đó hình thức / nút. Liên kết đó sẽ đưa bạn đến một nút về cơ bản.
Jordan Ramstad

Nếu bạn thực sự lo lắng về việc mọi người truy cập vào trang đó, bạn có thể cài đặt một plugin ưa thích buộc người dùng sử dụng mã thông báo như một phần của url (tôi biết có một cho quản trị viên, khá chắc chắn có một cho phía trước kết thúc) ... nhưng bạn cũng có thể cài đặt này: extensions.joomla.org/extensions/access-a-security/... mà khối IP nếu cố gắng sử dụng nói, 10 lần đăng nhập Nó cũng thông báo cho bạn.. Nó sẽ mở mắt về tần suất trang web của bạn bị tấn công. Tôi đã nhận thấy 100% số lần thử đều sử dụng "admin" làm tên người dùng.
Brian Peat

Tôi chỉ muốn mở rộng để nói rằng, ngay cả khi không có các mục menu, đăng nhập / đăng ký vẫn có thể truy cập được. Vì vậy, nếu có nhu cầu đăng nhập mà không phải đối phó với một mục menu thì có thể, nhưng nó cũng có nghĩa là bất cứ ai cũng có thể làm điều đó. Nếu đăng ký không bị khóa thì bất kỳ ai cũng có thể tạo tài khoản và truy cập bất kỳ trang "bí mật" nào nếu có ACL để ngăn chặn. Điều này có thể được thực hiện bằng cách tạo thêm một nhóm ACL và làm cho người dùng có thể truy cập vào nhóm đó. Các trang trong câu hỏi sẽ yêu cầu nhóm đó là tốt.
Jordan Ramstad

Ừm, ACLs có gì hay nếu bạn chưa đăng nhập. Tôi hiểu rằng bạn không bao giờ có thể ẩn trang đăng nhập công khai mà không có plugin đặc biệt. Bất kể, ngoại trừ các cuộc tấn công vũ phu, nếu bạn không đăng nhập, bạn không thể đi được rất xa. Tôi không thấy việc sử dụng trong việc gây rối với điều này nhiều như vậy.
Brian Peat

4

Bạn sẽ có thể thực hiện điều này bằng cách ghi đè bố cục cho biểu mẫu đăng nhập giao diện người dùng. Thêm một số mã PHP gần đầu tập tin bố trí. Mã được thêm này kiểm tra một tham số tùy chỉnh trong URL và cho một giá trị cụ thể. Nếu ai đó cố gắng truy cập trang đăng nhập thông qua bất kỳ URL nào nhưng không bao gồm tham số tùy chỉnh và giá trị cụ thể (chẳng hạn như abc = xyz ), thì mã sẽ đưa ra "return;" để bố cục của biểu mẫu sẽ không được xử lý để hiển thị.

Với mã này trong tệp bố cục ghi đè, chỉ người dùng biết URL (bao gồm tham số tùy chỉnh này và giá trị chấp nhận được) mới có thể sử dụng biểu mẫu đăng nhập đó.

Ví dụ: URL bí mật có thể là

mydomain.com/?option=com_users&view=login&abc=xyz

Sau đó thêm mã này ở gần đầu tệp bố cục ghi đè cho biểu mẫu đăng nhập:

if(JFactory::getApplication()->input->get('abc')!='xyz'){
    return;
}

Ý kiến ​​hay! Đây là một giải pháp khá dễ dàng để vô hiệu hóa chế độ xem. Nó cũng có thể được mở rộng cho mô-đun, nếu cần (mặc dù mô-đun không có url trực tiếp để truy cập).
Jordan Ramstad

3

Tôi thường gặp phải một vấn đề tương tự vì tôi thường muốn đăng nhập ở mặt trước để chỉnh sửa các trang web tôi quản lý mà không cần phải có biểu mẫu đăng nhập. Tôi đã kết thúc việc tạo một bookmarklet nhỏ mà tôi đã thêm vào thanh công cụ trình duyệt của mình. Đây rõ ràng là một giải pháp rất "cục bộ", vì bookmarklet chỉ có sẵn cho tôi (hoặc bất kỳ ai tôi sao chép mã), nhưng nó hoạt động trên trang web BẤT K Joomla Joomla và là một trình tiết kiệm thời gian đáng kinh ngạc, chỉ cần nhấp vào liên kết và biểu mẫu đăng nhập sẽ được hiển thị (tất nhiên là bạn đang ở trên một trang web Joomla, tất nhiên ...).

 javascript:void((function(){var loc = location.href; loc.indexOf("?") == -1 ? (location.href = loc+"?option=com_users&view=login") : (location.href = loc+"&option=com_users&view=login");})());
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.