2012-07-26 49 views
7

Có thể có cách nào để đặt tệp .htaccess của một người để nhắc xác thực mỗi lần không? Ví dụ: Tôi mở tab trình duyệt, đi tới url được bảo vệ pw, tôi được nhắc cho một pw. Đóng tab (trình duyệt chính vẫn mở) và lặp lại ở trên và được nhắc lại cho pw. Điều này không xảy ra trừ khi tôi đóng trình duyệt. Có lẽ đây là một bộ nhớ đệm?.htaccess nhắc nhập mật khẩu

Dưới đây là những gì tôi có cho đến nay:

AuthType Basic 
AuthName "myName" 
AuthUserFile "/home/myDir/.htpasswds/public_html/myName/passwd" 
require valid-user 

Cảm ơn trước.

Trả lời

6

Trên thực tế nó đang làm việc theo cách này (đơn giản):

  • duyệt sẽ gửi yêu cầu đến máy chủ của bạn mà không cần thông tin
  • phản ứng Apache với 403 lỗi vì "đòi hỏi người dùng hợp lệ" đã được chỉ định
  • nhắc nhở
  • trình duyệt cho tên người dùng & mật khẩu
  • trình duyệt gửi yêu cầu một lần nữa, thông tin đăng nhập thời gian này được cung cấp
  • Apache xác minh bằng chứng chống lại AuthUserFile và thiết lập "valid-user" phù
  • nếu mọi thứ đều OK - đặt ra dữ liệu với mã trạng thái 200
  • trình duyệt nhận được 200 đang cache sử dụng thông tin cho các tên miền liên quan đến phiên trình duyệt hết hạn

Như bạn thấy - vấn đề nằm trong trình duyệt. Bạn không thể buộc trình duyệt quên mật khẩu mà nó sử dụng cho một miền. Và thông thường bạn không muốn - ví dụ nếu trang được bảo vệ bằng mật khẩu chứa hình ảnh - trình duyệt sẽ yêu cầu tên người dùng và mật khẩu cho mỗi hình ảnh đã tải xuống.

Tuy nhiên có một số mẹo bạn có thể thử:

  • bạn có thể viết handler phép Apache của riêng bạn mà chỉ cho phép người dùng mỗi lần thứ hai nó được truy cập vào trang; nhưng thật khó để thực sự thực hiện
  • bạn có thể sử dụng một số loại xác thực dựa trên biểu mẫu (trong tập lệnh như php hoặc asp.net) thay vì dựa vào xác thực http; theo cách này là khá linh hoạt
  • bạn có thể thực hiện một mẹo, mỗi lần trang được bảo vệ được truy cập một số loại tập lệnh sẽ thay đổi mật khẩu trong tệp passwd; sau đó cung cấp hai mật khẩu cho mỗi người dùng và chuyển đổi chúng theo từng yêu cầu; cách này trình duyệt luôn luôn nhớ "sai" mật khẩu; có vẻ như điên rồ nhưng đây là giải pháp đơn giản nhất mà tôi có thể nghĩ đến :-)
Các vấn đề liên quan