an ninh Plain không phải là một mối quan tâm của câu hỏi vì tham số state
đang được sử dụng.
Các mối quan tâm chính của tôi đã có trong tâm trí là:
- Cho dù đó là cùng một trình duyệt mà ứng dụng của tôi gửi lên Facebook đó là quay trở lại để trình bày một mã thông báo ứng cử viên?
- Cho dù tác nhân (đại lý giống như trình duyệt) hay đại lý liên tục thực hiện yêu cầu OAuth và hiển thị cho tôi mã thông báo OAuth xấu khiến ứng dụng của tôi liên tục liên lạc với Facebook bằng mã thông báo xấu dẫn đến việc xử lý bất lợi tiềm tàng của Facebook.
Giải pháp duy nhất có thể cho vấn đề đầu tiên cũng là đặt cookie ngoài việc sử dụng state
. referer
sẽ giúp ích nếu hầu hết các nhà cung cấp không sử dụng https.
Vấn đề thứ hai có một sắc thái. Các tác nhân hoạt động sai không cần được kiểm soát trực tiếp bởi một thực thể độc hại. Chúng có thể là trình duyệt người dùng bình thường được chuyển hướng thông qua một số phương tiện gián tiếp (một trang web bị tấn công phổ biến, kỹ thuật xã hội).
Do sắc thái có khả năng tiêu đề referer
không được giả mạo. Tuy nhiên, https loại trừ mọi lợi ích có ý nghĩa.
Cookie chắc chắn sẽ trợ giúp trong trường hợp thứ hai cũng vì nếu bạn đang đặt cookie trong POST không có trang web của bên thứ ba có thể khiến chúng được đặt và bạn không thể bị tràn ngập phản hồi OAuth xấu do các trang web bị tấn công chuyển hướng người dùng OAuth bạn.
Đây không phải là câu trả lời rõ ràng (hoặc câu hỏi) nhưng hy vọng điều này cho thấy các sắc thái đằng sau câu hỏi.
'HTTP Referer' và tiêu đề như vậy có thể được mô phỏng dễ dàng. Người dùng có thể gửi bất kỳ tiêu đề nào. – safarov
Tôi nghĩ bạn có thể kiểm tra địa chỉ IP để đảm bảo nguồn được yêu cầu – safarov
sẽ không phải là địa chỉ IP của người dùng? – necromancer