2008-12-26 28 views
12

Lưu và tự động điền tên người dùng/mật khẩu là tính năng của hầu hết các trình duyệt hiện đại. Và người dùng nói chung có thể chọn tắt tính năng này trên cơ sở từng miền. Nhưng liệu có một cách tiêu chuẩn cho chính trang web đó để ngăn chặn bộ nhớ đệm mật khẩu?Kỹ thuật qua trình duyệt để tắt bộ nhớ đệm mật khẩu

Sự nhấn mạnh ở đây là trình duyệt chéo, vì vậy tôi sẽ sử dụng nhiều cơ chế song song nếu cần.

(Tôi đã thấy bộ nhớ đệm bị vô hiệu hóa hiệu quả khi có trường đăng nhập không chuẩn, ví dụ: trường mật khẩu ẩn phụ. Nhưng tôi không muốn phụ thuộc vào các hiệu ứng phụ có hành vi bất ngờ thay đổi tương lai.)

Ngược lại, có các trình duyệt/phiên bản nào ở đó triển khai bộ nhớ đệm mật khẩu mà không có bất kỳ tính năng vô hiệu nào không?

+0

Bạn muốn đạt được điều gì một cách chính xác? Buộc người dùng phải nhớ mật khẩu hoặc ngăn người tấn công thu thập mật khẩu được lưu trữ ở phía người dùng? – PolyThinker

+1

Mỏ không phải là lý do tại sao, của tôi là nhưng để thực hiện và triển khai. (Nhưng có lẽ sau này.) Khách hàng: http://www.disa.mil/ –

+1

Bạn chỉ nên sử dụng CAC;) – erickson

Trả lời

12

Thêm autocomplete="off" vào các yếu tố <input> của bạn. Hoạt động trong tất cả các trình duyệt hiện đại, IIRC.

+0

Ah, bây giờ thấy tôi đã mong đợi một cái gì đó như cache = off. Tôi sẽ phải kiểm tra để đảm bảo rằng các mật khẩu không làm cho nó vào đĩa - trái ngược với chỉ bị loại trừ khỏi tự động hoàn thành ... –

+2

Chỉ cần FYI, Microsoft đã quyết định rằng Internet Explorer 11 sẽ không còn danh dự 'autocomplete =" off Các trường '' cho 'input type =" password "'. http://msdn.microsoft.com/en-us/library/ie/ms533486%28v=vs.85%29.aspx –

0

Nhập mật khẩu một tên được tạo ngẫu nhiên mà chỉ bạn mới có thể nhận ra. Lưu trữ tên đó, ví dụ, trong một trường ẩn, và sau đó sử dụng tên đó để lấy mật khẩu được chèn vào. Bằng cách đó, ngay cả khi trình duyệt lưu trữ mật khẩu, nó sẽ không thể đưa nó trở lại vào lần tới khi người dùng truy cập.

Người dùng của bạn sẽ có khả năng vào thời điểm này tiến hành lưu vào bộ nhớ cache mật khẩu trên mặt sau của màn hình, nhưng đó thực sự là một trận chiến hoàn toàn khác.

Phương pháp tương tự hoạt động tốt đối với spam, vì hầu hết các bot đều dựa vào việc tìm kiếm các tên trường chung.

+0

Thú vị. Nhưng trình duyệt vẫn sẽ kết thúc lưu trữ mật khẩu trên đĩa của người dùng, đó là một vi phạm an ninh cho chúng tôi. (Và, oh, tôi đồng ý với bạn về lý thuyết postit.) –

+0

những gì một gợi ý vô lý –

1

Tôi sẽ tưởng tượng rằng các trình duyệt lưu các trường của biểu mẫu khi biểu mẫu được gửi. Nếu bạn sử dụng AJAX để lấy giá trị của trường mật khẩu, hãy gửi nó, sau đó xóa trường? Biểu mẫu sẽ không bao giờ thực sự được gửi, do đó, trình duyệt về mặt lý thuyết sẽ không bao giờ có cơ hội lưu các giá trị.

+1

Bất kỳ ai thực hiện bất kỳ thử nghiệm nào về câu trả lời này? Tôi thích lý thuyết chỉ muốn biết nếu nó đúng. – gnarf

0

AFAIK, các trường được che dấu (các trường hiển thị '*' thay vì ký hiệu bạn nhập) sẽ không bao giờ được lưu để tự động hoàn thành. Bạn có muốn ngăn người dùng nhớ mật khẩu cho trang web của mình trong các cơ sở tiết kiệm mật khẩu của trình duyệt không?

+0

Đúng, ngăn chặn lưu trữ trong cơ sở tiết kiệm mật khẩu. –

0

Chỉ cần thêm trường mật khẩu khác giữa tên người dùng và mật khẩu và đặt kiểu không hiển thị.

<!-- Username label and text here> ... <--!> 
<input type="password" id='txtPasswordDud' style='display: none;' /> 
<!-- Actual Password label and text here> ... <--!> 
Các vấn đề liên quan