2015-04-09 19 views
5

Khá mới đối với Nút và Express. Tôi có một ứng dụng sails.js dựa trên việc biết nguồn gốc của một yêu cầu khi tôi cần xác thực yêu cầu đến từ một miền được đăng ký.req.headers.origin không được xác định

Tôi đã thấy trong nhật ký rằng nguồn gốc trống đôi khi, tại sao điều này lại xảy ra? Nó không phải là một ý tưởng tốt để dựa vào tài sản nguồn gốc, là có một lựa chọn khác?

Cảm ơn

Trả lời

9

Nguồn gốc có thể bị ẩn nếu người dùng đến từ trang web được mã hóa ssl.

Ngoài ra: Một số tiện ích mở rộng trình duyệt xóa nguồn gốc và tham chiếu khỏi tiêu đề yêu cầu http và do đó thuộc tính gốc sẽ trống.

Bạn có thể muốn tạo một số loại mã thông báo xác thực và chuyển nó như một tham số, thay vì dựa vào các tiêu đề yêu cầu. Đặc biệt là từ các tiêu đề có thể được giả/thao tác.

+0

Tuyệt vời, cảm ơn @peanut. Điều đó làm cho rất nhiều ý nghĩa bây giờ. Tôi đã có mã thông báo xác thực nhưng rất dễ để ai đó tìm thấy dịch vụ của tôi sử dụng một đoạn JS mà bất kỳ ai cũng có thể cài đặt trên trang web của họ để nguồn gốc là một phần khác của kiểm tra bảo mật. Điều gì sẽ là một cách tốt hơn vòng này? Vẫn không có cách nào để có được nguồn gốc một cách đáng tin cậy? –

+0

Tạo mã thông báo ở phía máy chủ. Chỉ sử dụng thứ gì đó mà máy chủ của bạn có thể tạo (tức là dựa trên mật khẩu hoặc một thứ gì đó tương tự, vì vậy một máy chủ có thể tạo và máy chủ khác có thể xác thực nó). Đây là một chút quá phức tạp để giải thích trong một bình luận khó khăn. Có rất nhiều hướng dẫn và bài báo về chủ đề này mặc dù. – Peanut

+0

Đó là ok, cảm ơn bạn đã đưa tôi đi đúng hướng :) –

Các vấn đề liên quan