2012-12-19 22 views
10

Używam ciasteczek JQuery.cookies do zarządzania plikami cookie. Przechowuję obiekty i informacje o użytkowniku/logowaniu.Czy można zabezpieczyć pliki cookie?

Czy istnieje sposób szyfrowania lub zabezpieczenia plików cookie? czy jest to możliwe tylko z SSL?

+0

Masz na myśli w Asp.Net? – Haris

+0

Może z czymś podobnym do [crypto.js] (http://code.google.com/p/crypto-js/). Jednak JavaScript musi być włączony, w przeciwnym razie nie można go użyć. –

+0

Jedyne, co mogę wymyślić to szyfrowanie danych w pliku cookie. Ale to musi być zrobione po stronie serwera, aby było bezpieczne. Szyfrowanie po stronie klienta jest prawdopodobnie tak samo niebezpieczne, jak po prostu zapisanie go jako zwykłego/tekstowego. Ponieważ haker prawdopodobnie odwróci proces, znając wszystkie zmienne. – Daniel

Odpowiedz

9

Zwykły sposób zabezpieczenia plików cookie polega na przechowywaniu w nich tylko losowo wygenerowanego identyfikatora sesji. Serwer przechowuje wszystkie poufne informacje i kojarzy je z identyfikatorami przypisanymi każdemu odwiedzającemu. Ma to również tę zaletę, że można przechowywać tyle informacji, ile chcesz i nie są związane z ograniczeniem miejsca na pliki cookie.

Nie można tego oczywiście zrobić z samą Javascript. Do tego potrzebne będzie programowanie po stronie serwera.

+0

To dobry pomysł, przetestuję teraz coś takiego. Dziękuję Ci –

3

Możesz po prostu zapisać je jako zaszyfrowane ciągi, a gdy je odzyskasz, odszyfruj je. Jakiekolwiek szyfrowanie za pomocą tajnego klucza spowoduje:

+3

Z tajnym kluczem przechowywanym gdzieś w JavaScript? –

+0

+1 @barts, Właśnie napisałem to samo –

+0

@Vury SO zdecydowanie musi wprowadzić plakietkę "ten sam czas plakatu buddy" –

2

Utwórz plik cookie ze wszystkimi dostępnymi opcjami wraz z opcją secure.

$.cookie('myCookie', 'myValue', { expires: 365, secure: true }); 

secure {Boolean} Jeśli to prawda, bezpieczny atrybut ciasteczko zostanie ustawiony i przekazywanie plików cookie wymaga bezpiecznego protokołu HTTPS (jak).

Powiązane problemy