2012-05-01 33 views
5

Chúng tôi đang cố gắng bảo vệ một vài tài nguyên khác nhau trong cài đặt ModX của mình. Mã .htaccess hiện nay là như sau (không bao gồm tất cả những thứ ModX)Làm cách nào để mật khẩu bảo vệ tài nguyên trong Trang web ModX bằng htaccess và htpasswd?

AuthName "Dialog prompt" 
AuthType Basic 
AuthUserFile /var/www/vhosts/mywebsite.co.uk/.htpasswd 

<FilesMatch ^index.php\?q=71$> 
    require valid-user 
</FilesMatch> 

Đối tượng của cuộc tập trận là để bảo vệ các nguồn sau:

Tôi đã thử các kết hợp khác nhau của LocationsMatch, Locations, files và filesmatch và không thể làm cho nó hoạt động.

Cảm ơn bạn trước

+1

Tôi muốn nói: Bắt đầu đọc hướng dẫn sử dụng cho các chỉ thị đó, ít nhất sẽ cung cấp cho bạn thông tin chi tiết về lý do bạn đã thử * cho đến nay * không hoạt động *: http: //httpd.apache.org/docs/current/mod/core.html # filesmatch – hakre

+0

Đọc từng từ và thử mọi tùy chọn mà tôi có thể khám phá. Điều này cần là ai đó có thể với một số kinh nghiệm trong việc đạt được vấn đề này mà phải khá phổ biến. – user1346416

+1

Tại sao bạn sử dụng .htaccess và không được xây dựng trong quản lý tài nguyên/bảo mật của modx? –

Trả lời

0

Đây là những gì các giải pháp tổng thể là:

Nếu bất cứ ai khác cần phải biết, tôi đã tạo ra một đoạn gọi là passwordprotect và đặt ở phía trên cùng của trang: [ [Bảo vệ mật khẩu]]. sau đó tôi đưa vào đoạn mã sau (một sự thích nghi của phản ứng trên):

<?php 

if(isset($_SERVER['PHP_AUTH_USER']) && ($_SERVER['PHP_AUTH_USER']=='user') &&  ($_SERVER['PHP_AUTH_PW']=='password')) 
{ 
    echo 'You are successfully logged in.'; 
} else { 
    header('WWW-Authenticate: Basic realm="Protected area"'); 
    header('HTTP/1.0 401 Unauthorized'); 
    echo 'Text to send if user hits Cancel button'; 
    exit; 
} 

EDIT: Nếu bạn thấy rằng điều này đôi khi làm việc và đôi khi không làm việc, điều này có lẽ bởi vì sử dụng [[passwordprotect] ], modx sẽ lưu vào bộ nhớ cache. Tôi đã thành công hơn với: [[! Passwordprotect]] về Cách mạng. Tôi nghĩ rằng mã là [! Passwordprotect!] Trên Evolution. Dấu chấm than chỉ biểu thị không lưu vào bộ nhớ cache đoạn mã. Hy vọng rằng sẽ giúp một ai đó!

+0

Nếu bạn thấy rằng điều này đôi khi không hoạt động và đôi khi không hoạt động, điều này có thể do sử dụng [[passwordprotect]], modx sẽ lưu lại đoạn mã. – user1346416

+0

Ngoài ra, đoạn mã được lưu trong bộ nhớ cache có thể được xác thực người dùng PREVIOUS và không phải là đoạn mã mới. Đọc dưới đây để thực hiện chính xác. –

0

Hoàn toàn không có lý do để thực hiện điều này và che giấu toàn bộ mục đích của ACL cách mạng MODX. Câu trả lời đúng là:

  1. Thiết lập nhóm người dùng có vai trò tối thiểu có thể truy cập tài nguyên.
  2. Tạo tài nguyên thử nghiệm trong nhóm tài nguyên.
  3. Thêm quản trị viên trang web vào nhóm tài nguyên.
  4. Tạo người dùng thử nghiệm trong nhóm tài nguyên.
  5. Làm mới bộ nhớ cache của trang web.
  6. Đăng xuất khỏi tất cả người dùng - kể cả chính bạn.
  7. Kiểm tra ACL - với quản trị viên trang web cả trong trình quản lý và giao diện người dùng.
  8. Đăng xuất hoặc sử dụng trình duyệt hoàn toàn khác và kiểm tra với người dùng thử nghiệm.
  9. Một khi nó đang làm việc di chuyển các tài liệu được bảo vệ vào nhóm tài nguyên.
  10. Thêm người dùng vào nhóm mà bạn muốn có quyền truy cập.
  11. Xóa đoạn mã.

Nếu bạn cần thêm trợ giúp để nhận bản sao của cuốn sách hoặc truy cập vào trang web của mình.

Các vấn đề liên quan