2015-04-09 18 views
5

Dość nowy w Node i Express. Mam aplikację sails.js, która polega na poznaniu źródła żądania, ponieważ potrzebuję uwierzytelnienia, że ​​żądanie pochodzi z zarejestrowanej domeny.req.headers.origin jest niezdefiniowany.

Widziałem w dziennikach, że pochodzenie jest puste od czasu do czasu, dlaczego tak się dzieje? Czy nie jest dobrym pomysłem poleganie na własności początkowej, czy istnieje inna opcja?

Dzięki

Odpowiedz

9

Pochodzenie może być ukryte, jeśli użytkownik pochodzi z SSL szyfrowane stronie.

Również: Niektóre rozszerzenia przeglądarki usuwają początek i odnośnik z nagłówków żądań http, w związku z czym właściwość początkowa będzie pusta.

Być może zechcesz utworzyć token uwierzytelniania i przekazać go jako parametr, zamiast polegać na nagłówkach żądań. Zwłaszcza, że ​​nagłówki można sfałszować/zmanipulować.

+0

Genialny, dzięki @peanut. Teraz ma to sens. Posiadam już tokeny uwierzytelniające, ale łatwo jest je znaleźć, ponieważ moja usługa używa części JS, którą każdy może zainstalować na swojej własnej stronie, więc pochodzenie było kolejną częścią kontroli bezpieczeństwa. Jaki byłby lepszy sposób obejścia tego? Czy nadal nie ma możliwości wiarygodnego uzyskania pochodzenia? –

+0

Generowanie tokenów po stronie serwera. Użyj czegoś, co tylko twój serwer może wygenerować (tj. Na podstawie hasła lub czegoś podobnego, aby jeden serwer mógł go wygenerować, a drugi może go potwierdzić). Jest to nieco zbyt skomplikowane, aby objaśnić w jednym komentarzu trudne. Istnieje jednak wiele samouczków i artykułów na ten temat. – Peanut

+0

W porządku, dziękuję, że skierowałeś mnie w dobrym kierunku :) –

Powiązane problemy