2011-01-10 32 views
7

Tôi cần thứ gì đó giống như một cookie, nhưng tôi đặc biệt không muốn nó quay lại máy chủ. Tôi gọi nó là "cookie phiên phía máy khách" nhưng mọi cơ chế hợp lý sẽ tuyệt vời.Cookie chỉ dành cho khách hàng

Về cơ bản, tôi muốn lưu trữ một số dữ liệu được mã hóa trên máy chủ và yêu cầu người dùng nhập mật khẩu vào trình duyệt. Trình duyệt giải mã dữ liệu bằng mật khẩu (hoặc tạo và mã hóa dữ liệu bằng mật khẩu) và máy chủ chỉ lưu trữ dữ liệu được mã hóa. Để giữ cho dữ liệu an toàn trên máy chủ, máy chủ không nên lưu trữ và không bao giờ nên nhận mật khẩu. Lý tưởng nhất nên có một phiên cookie hết hạn để làm sạch.

Tất nhiên tôi cần nó có sẵn trên nhiều trang khi người dùng đi qua trang web.

Điều tốt nhất tôi có thể đưa ra là một số loại cơ chế iframe để lưu trữ dữ liệu trong các biến javascript, nhưng điều đó là xấu. Có ai có bất kỳ ý tưởng làm thế nào để thực hiện một cái gì đó như thế này?

FWIW, nền tảng là ASP.NET, nhưng tôi không cho rằng vấn đề đó là quan trọng. Nó cần hỗ trợ một loạt các trình duyệt, bao gồm cả thiết bị di động.

Để trả lời một câu trả lời dưới đây, hãy để tôi làm rõ. Câu hỏi của tôi không phải là cách để đạt được mật mã, đó không phải là vấn đề. Câu hỏi đặt ra là nơi lưu trữ mật khẩu để nó lưu trữ liên tục từ trang này sang trang khác, nhưng không vượt quá một phiên, và theo cách mà máy chủ không nhìn thấy nó.

+0

Tôi muốn giữ dữ liệu được mã hóa trên máy chủ và chỉ có thể truy cập khi người dùng có mật khẩu. –

+0

Có, điều này sẽ phải được thực hiện trong javascript. Tuy nhiên, nếu bạn đang xử lý với bất kỳ lượng lớn dữ liệu nào, bạn sẽ phải xử lý rất nhiều vào trình duyệt của khách hàng. –

Trả lời

5

Đối với những gì bạn đang tìm kiếm, tôi sẽ nói rằng javascript là tốt nhất bạn có thể làm.

Bạn có thể truy xuất dữ liệu được mã hóa trên máy chủ và giải mã nó bằng javascript ở phía máy khách. Không truyền mật khẩu, không bí mật cho người dùng.

Nó phụ thuộc mà mã hóa thuật toán bạn đang sử dụng nhưng có thư viện cho đó (ví dụ Stanford Javascript Crypto Library)

(nhưng tôi không hiểu tại sao bạn nói về cookie)

Nếu bạn quan tâm đến khía cạnh lưu trữ thay vì khía cạnh mã hóa, có lẽ bạn có thể xem xét số session variables

+0

Cảm ơn câu trả lời của bạn. Câu hỏi của tôi là nhiều hơn về nơi để lưu trữ mật khẩu, không phải về bản thân mật mã. Nhưng tôi sẽ chỉnh sửa câu hỏi của tôi để làm rõ. –

+0

Ok Tôi hiểu lầm. Có thể nhìn vào các biến phiên http://www.thomasfrank.se/sessionvars.html –

+0

Điều sessionvars có vẻ hoàn hảo, mặc dù tôi sẽ phải làm việc thông qua các cân nhắc bảo mật. Vì vậy, tôi muốn chấp nhận bình luận của bạn hơn là câu trả lời của bạn :-) Tôi sẽ chấp nhận câu trả lời của bạn để thay thế. Cảm ơn bạn đã giúp đỡ. –

10

của Thomas Frank Bạn có thể sử dụng đối tượng localStorage của JavaScript. Các ebook Dive Into HTML5 có một chương tuyệt vời về nó. Tôi nghĩ rằng chương này cũng đề cập đến một số xung quanh có thể có cho các trình duyệt không hỗ trợ localStorage.

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