2014-09-03 29 views
6

Tôi đã xây dựng một ứng dụng (ios và ứng dụng web) trên Parse trong vài tháng qua và chỉ mới phát hiện ra cách mã thông báo phiên làm việc của chúng. Đây là những gì tôi đã học được cho đến nay:an ninh mã thông báo lỗi phiên

  • Mỗi người dùng có phiên riêng của họ thẻ
  • Các thẻ được sử dụng để thay thế các thông tin người dùng (để xác thực) khi thực hiện các yêu cầu đến máy chủ
  • Các dấu hiệu bao giờ thay đổi (ngay cả khi đặt lại mật khẩu) và không bao giờ hết hạn
  • Mã thông báo được lưu trữ cục bộ trên phía máy khách khi đăng nhập
  • Người dùng có thể đăng nhập bằng phương pháp Parse.User.become (sessiontoken, options), chỉ với mã thông báo phiên

Điều này có vẻ rất không an toàn đối với tôi, hoặc tôi đang thiếu điều gì đó? Dường như nếu bất kỳ ai quản lý để nhận mã thông báo này, họ có quyền truy cập vĩnh viễn vào tài khoản người dùng, ngay cả khi tên người dùng và/hoặc mật khẩu được thay đổi?

Cảm ơn,

Mario

+1

Nếu mã thông báo thực sự hoạt động theo cách này, thì có - có vẻ không chắc chắn chết người. – Regent

+0

đúng; nghĩ về các ứng dụng web mà bạn sử dụng nơi cookie thực hiện khá nhiều điều tương tự? –

+0

bạn có thể sử dụng tùy chọn revokeSessionOnPasswordReset trong cấu hình phân tích cú pháp máy chủ –

Trả lời

2

Tôi cũng hai lần kiểm tra token phiên trở về từ REST API & Android Client. Nó là như nhau. Ngay cả sau khi tôi đã thay đổi mật khẩu.

Đây chắc chắn là một vấn đề bảo mật tiềm ẩn. Bất kỳ ai bị mất cắp thiết bị di động, tin tặc có thể nhận mã thông báo phiên nếu phiên không được mã hóa và bảo mật dữ liệu người dùng sẽ bị đe dọa vĩnh viễn.

Khi tin tặc có thể sử dụng mã thông báo phiên từ bất kỳ ứng dụng khách nào mãi mãi. Bạn sẽ không bao giờ biết khi nào thì hacker sẽ làm điều ác. Tôi nghiêm túc lo lắng về vấn đề này. Hy vọng ai đó sẽ giải quyết nó.

PS: Xin chào Mario, tôi đã đăng sự cố trên Nền tảng nhà phát triển Facebook.

https://developers.facebook.com/bugs/309490399239393/

Hy vọng ai đó sẽ theo dõi và giải quyết nó sau cùng.

+0

Bạn có thể chỉnh sửa bài đăng này để chuyển hướng đến cuộc thảo luận bạn đã truy cập tại https://groups.google.com/forum/#!topic/parse-developers/qjvKJYikHQ8 và tôi sẽ chấp nhận nó như là câu trả lời. Cảm ơn! – Mario

+1

Dường như người dùng "mã thông báo phiên" thực sự là ID cơ sở dữ liệu của hồ sơ người dùng trong Parse. Nếu vậy, vấn đề không phải là nó không bao giờ thay đổi, nhưng bạn có thể 'trở thành 'người dùng mà không có bất kỳ rào cản xác thực nào. – wberry

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