2010-10-31 45 views
7

Khi tôi nhận được mã thông báo truy cập của mình cho một trang web (nói facebook) bằng OAuth, điều quan trọng là giữ bí mật này như thế nào? Có thể bất cứ điều gì độc hại xảy ra nếu ai đó có một tổ chức của một?Làm cách nào để giữ bí mật mã thông báo truy cập của OAuth?

Tôi đã tự hỏi nếu nó sẽ là một ý tưởng tồi để lưu mã thông báo trong cookie hoặc phiên.

+0

Bạn có thể không muốn lưu trữ trong cookie, nhưng phiên là OK. Ý tưởng là cookie được coi là "đầu vào của người dùng" và không đáng tin cậy (trừ khi sử dụng cookie đã ký), có nghĩa là bạn phải truy vấn cơ sở dữ liệu người dùng của mình để xác thực rằng mã thông báo truy cập hợp lệ trước khi sử dụng. Điều đó đã được thực hiện cho các ID phiên ở cấp phiên trong hầu hết các khung công tác web. –

+2

Ngoài hiệu lực, tôi lo lắng hơn về bảo mật. Vì vậy, tôi lấy access_token tôi nhận được từ facebook và trên một máy tính khác chạy curl -F 'access_token = 162032318056 | 2.0r19NN8CJ3qiz2e0dA_G6w __. 3600.1288576800-6423201 | q7GD-dWTEvWoqEZjZ77Ga_ddhwA' -F 'message = TEST' https://graph.facebook.com/me/feed Lệnh này đăng TEST lên tường của tôi. Vì vậy, tôi lo lắng về một người dùng độc hại có thể đọc một số cookie, lấy mã thông báo truy cập họ nhận được từ một trang web, và sau đó có thể chạy các lệnh đặc quyền trên tài khoản facebook ai đó. Từ thử nghiệm này có vẻ như là có thể –

+0

Brad, bạn đã tìm ra giải pháp chưa? Ngoài phiên hoặc cookie, nơi khác sẽ lưu trữ nó? Lưu nó trong DB mỗi khi người dùng đăng nhập và sau đó truy vấn nó có vẻ như một ý tưởng rườm rà nhất ... – Alexandra

Trả lời

4

Cập nhật: nếu bạn đang kết nối người dùng với sdk javascript, id người dùng và mã thông báo truy cập đã được lưu trữ trong cookie cho trang web của bạn. Kiểm tra các cookie http được gửi đi. Nếu không, hãy kiểm tra tài liệu FB.Init, dưới dạng FB.Init có tham số boolean cookie bạn có thể đặt để tạo cookie cho bạn có tên fbs_ {APPID}. This đăng bài nói về cookie đó.

+0

Dường như một khi tôi nhận được access_token tôi không cần bất kỳ phím nào khác để làm những điều đặc quyền. tôi đoán vậy. Cảm ơn! –

+0

Yuily bạn nói đúng. Tôi đã cập nhật câu trả lời. – bkaid

2

Có, mã thông báo truy cập tương đương với tên người dùng/mật khẩu của bạn. Hầu hết các triển khai sẽ hết hạn mã thông báo truy cập sau một thời gian nhưng trong khi vẫn hợp lệ, nó phải được giữ bí mật.

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