2011-01-10 7 views
7

Мне нужно что-то вроде файла cookie, но я специально не хочу, чтобы он возвращался на сервер. Я называю это «cookie сеанса клиентской стороны», но любой разумный механизм был бы замечательным.Только на стороне клиента Cookies

В принципе, я хочу сохранить некоторые данные, зашифрованные на сервере, и ввести пароль пользователя в браузер. Браузер расшифровывает данные с помощью пароля (или создает и шифрует данные с помощью пароля), и сервер хранит только зашифрованные данные. Чтобы обеспечить безопасность данных на сервере, сервер не должен хранить и никогда не должен получать пароль. В идеале должно быть истечение сеанса cookie для очистки.

Конечно, мне нужно, чтобы он был доступен на нескольких страницах, когда пользователь ходит по веб-сайту.

Лучшее, что я могу придумать, это какой-то механизм iframe для хранения данных в переменных javascript, но это уродливо. Есть ли у кого-нибудь идеи, как реализовать что-то подобное?

FWIW, платформа ASP.NET, но я не думаю, что это важно. Он должен поддерживать широкий спектр браузеров, в том числе мобильных.

В ответ на один ответ ниже, позвольте мне уточнить. Мой вопрос заключается не в том, как добиться криптографии, это не проблема. Вопрос заключается в том, где хранить пароль, чтобы он был постоянным со страницы на страницу, но не за пределами сеанса, и таким образом, чтобы сервер не видел его.

+0

Я хочу, чтобы данные были зашифрованы на сервере и доступны только в том случае, если у пользователя есть пароль. –

+0

Да, это должно быть сделано в javascript. Однако, если вы имеете дело с большим количеством данных, вы отправляете большую часть обработки в браузер клиента. –

ответ

5

Для чего вы ищете Я бы сказал, что javascript - это лучшее, что вы могли бы сделать.

Вы можете получить зашифрованные данные на сервере и расшифровать его с помощью javascript на стороне клиента. Никакой передачи пароля, не секрет для пользователя.

Это зависит от того, которого алгоритма шифрования используется, но есть библиотеки для этого (например Stanford Javascript Crypto Library)

(но я не понимаю, почему вы говорите о печенье)

Если вы заинтересованы в аспект хранения, а не криптографический аспект, возможно, вы можете подумать о том, что Thomas Frank's session variables

+0

Спасибо за ваш ответ. Мой вопрос был больше о том, где хранить пароль, а не о самом крипто. Но я отредактирую свой вопрос, чтобы уточнить. –

+0

Хорошо, я неправильно понял. Посмотрите, возможно, на переменные сеанса http://www.thomasfrank.se/sessionvars.html –

+0

Сессионные вещи кажутся идеальными, хотя мне придется работать по соображениям безопасности. Поэтому я хочу принять ваш комментарий, а не ваш ответ :-) Вместо этого я приму свой ответ. Спасибо за вашу помощь. –

10

Вы можете использовать локальный объект JavaScript localStorage. В книге Dive Into HTML5 есть отличная глава. Я думаю, что в этой главе также упоминаются некоторые возможности для браузеров, которые не поддерживают localStorage.

Смежные вопросы