2016-12-14 69 views
5

Jaka jest najlepsza praktyka bezpieczeństwa, którą należy przestrzegać podczas korzystania z PouchDB po stronie klienta w celu uzyskania dostępu do zdalnego serwera?Bezpieczeństwo PouchDB

Przykładem na https://pouchdb.com/getting-started.html synchronizacji ze zdalnego serwera z kodem:

var remoteCouch = 'http://user:[email protected]/todos'; 

Problem jest pewnie nie chcesz, aby użytkownik, aby zobaczyć hasła zwykłego tekstu z pliku mogą pobranie - nawet jeśli ten plik jest wyświetlany tylko uwierzytelnionym użytkownikom.

Prosimy o radę. Z góry dziękuję,

Odpowiedz

0

To zależy od twojego zdalnego serwera. Jeśli korzystasz z serwera CouchDB, możesz skonfigurować go tak, aby komunikował się tylko za pośrednictwem protokołu SSL (HTTPS). Szczegółowe informacje można znaleźć w sekcji docs.

Jeśli nie chcesz udostępniać swojego serwera CouchDB bezpośrednio w Internecie, możesz również ukryć go za odwrotnym proxy, np. serwer Apache z włączonym rozszerzeniem mod_proxy i SSL.

+4

Używanie protokołu SSL nie pomaga przed atakującym, który może odczytać hasło ze źródła javascript –

1

Każdy użytkownik witryny powinien mieć własnego użytkownika CouchDB. Jak sugeruje @onno, użyj HTTPS i danych logowania użytkownika, aby uzyskać dostęp do CouchDB. Hasła nigdy nie powinny być dostępne w JavaScript po stronie klienta.

1

Oto really good article dotyczące wszystkich rzeczy uwierzytelniających dla CouchDB.

Posiadam serwer produkcyjny z CouchDB skonfigurowany do używania HTTP przez localhost, ale żądania zewnętrzne wymagają przekierowania HTTPS przez stunnel do CouchDB.

Na kliencie używam PouchDB do utrzymania lokalnej, replikowanej bazy danych. W ramach uzgadniania w celu nawiązania komunikacji z CouchDB przez HTTPS, oprogramowanie uzyskuje poświadczenia CouchDB z innego serwera - poświadczenia nigdy nie są przechowywane po stronie klienta.

pouchdb-authentication to dobra wtyczka, ale uważam, że lepiej radzić sobie z auth osobiście.