2012-07-29 19 views
6

Używam nodejs do napisania usługi przesyłania obrazów. Płacący klienci będą mogli wysłać plik obrazu do mojego punktu końcowego, który ustawiłem na moim serwerze. Jednak, gdy każde żądanie przychodzi, muszę potwierdzić, że jest to faktycznie klient płacący, który zgłasza żądanie. Myślałem o tym, żeby klient dał mi swoją nazwę domeny, a ja po prostu sprawdziłbym nagłówek referera. Jednak ktoś może łatwo podrobić nagłówek referera i korzystać z mojej usługi bez płacenia. Jak deweloperzy SaaS stają przed tym problemem technicznym? Czy można to naprawić, nie wymagając od moich klientów kodu po stronie serwera?Jaki jest bezpieczny sposób poznania referera/referrera w żądaniu HTTP?

+0

Nie polegaj po stronie klienta w przypadku tego rodzaju pracy. –

+0

Co powiecie na [OAuth] (http://oauth.net/documentation/getting-started/)? – ghoti

Odpowiedz

1

Nie można uwierzytelnić przeglądarki za pomocą nagłówka strony odsyłającej.

Jeśli chcesz uwierzytelnić osobę fizyczną, prawdopodobnie będziesz potrzebować systemu logowania, który udostępnia dane uwierzytelniające (nazwa użytkownika/pwd), i sprawdzisz je w stosunku do dozwolonej liczby użytkowników. Jeśli przejdą, to ustawiasz w przeglądarce pewien rodzaj pliku cookie, który wskazuje, że jest legalnym użytkownikiem. Kolejne żądania od tego użytkownika będą zawierać ten plik cookie, który można sprawdzić na każde żądanie.

Plik cookie musi być utworzony przez użytkownika, który można zweryfikować, którego nie można łatwo odgadnąć lub sfałszować (jak sesja lub zaszyfrowany token z serwera). Zazwyczaj po upływie określonego czasu ustawisz wygaśnięcie pliku cookie, aby użytkownik musiał się ponownie zalogować.

+0

Uzgodnione. Istnieje darmowa struktura o otwartym kodzie źródłowym o nazwie OAuth, która wykona wiele pracy za Ciebie: http://oauth.net. Oto link do kodu JavaScript, którego możesz użyć, ponieważ otagowałeś JavaScript w swoim pytaniu: http://oauth.googlecode.com/svn/code/javascript/ –

2

Czy budujecie zewnętrzny hosting grafiki dla stron internetowych czy też dzielić coś, HAS za prywatne i SECURE? Jeśli to ta pierwsza, czytaj dalej.

Oczywiście nagłówek można sfałszować. Oto dlaczego nie należy martwić się o to:

  1. alternatywna jest brzydki: Aby zbudować bezpieczną usługę zastrzegania, trzeba będzie opracować jakiś system tokena, że ​​właściciel strony implementuje na jego końcu, jak również. Jest szansa, że ​​nie zarejestruje się z tobą, ponieważ dostępne są prostsze alternatywy.

  2. Podszywanie się będzie musiało zostać wykonane po stronie klienta. Bardzo niewielu "użytkowników" faktycznie to zrobi. Dwóch maniaków podszywających nagłówki na swojej maszynie nie zrobi dla ciebie dużej różnicy. Jeśli napiszą jakiś serwer pośredniczący lub oprogramowanie pośredniczące, które działa automatycznie i wiele osób zaczyna z niego korzystać, może to stanowić problem. Jednak nie jest to bardzo prawdopodobne.

Chyba już wiem, ale skoro nie wspomniałem - to się nazywa Hotlinking. Google w tym temacie, aby znaleźć więcej zasobów.

Powiązane problemy