2010-09-09 34 views
6

Tôi muốn triển khai hệ thống xác thực người dùng tùy chỉnh trong ứng dụng appengine của mình. Tôi không muốn sử dụng phiên. Tôi là một người mới trong lĩnh vực này, vì vậy tôi có hai câu hỏi cơ bản:Xác thực bảo mật với GWT và GAE qua https?

1: Có an toàn khi chỉ gửi tên người dùng và mật khẩu với mỗi RPC duy nhất qua https không? Tôi cần phải làm gì để giữ bí mật tên người dùng và mật khẩu đó ở đầu khách hàng?

2: Làm cách nào để yêu cầu GWT sử dụng https khi nó đưa ra yêu cầu?

Tôi không biết nhiều về bảo mật, vì vậy vui lòng không tha cho tôi bất kỳ chi tiết "rõ ràng" nào.

Cảm ơn!

+0

http://code.google.com/p/google-web-toolkit-incubator/wiki/LoginSecurityFAQ dường như trả lời câu hỏi 1 với "có" và "cookie". Vẫn khó nắm bắt khó hiểu là câu trả lời cho câu hỏi 2. –

+0

Cách triển khai của bạn hoạt động như thế nào? Bạn có bất kỳ vấn đề nào phải gửi thông tin xác thực đăng nhập cho mọi yêu cầu không? –

+0

Nó hoạt động rất tốt trong ba tháng! –

Trả lời

5

Xem quy trình bằng firebug cho thấy rằng tất cả RPC đang diễn ra trên cùng một giao thức mà trang chủ được yêu cầu. Điều này dường như được yêu cầu cho quy tắc tương tự-site-xứ, vì vậy tôi sẽ cho rằng câu trả lời của tôi là

1: Vâng, nhưng nó chậm

2: GWT tự động sử dụng https khi trang chủ là được yêu cầu w/https

1

Trên GAE, bạn cũng có thể sử dụng API dịch vụ người dùng của Google http://code.google.com/appengine/docs/java/users/overview.html. Nó rất trực quan và bạn sẽ không cần biết chi tiết bảo mật.

+0

Cảm ơn, nhưng tôi cần nhiều quyền kiểm soát hơn API cung cấp (Tôi muốn tạo người dùng của riêng mình, không dựa vào phương thức xác thực bên ngoài). –

2
  1. Gửi tên người dùng và mật khẩu qua HTTPS là an toàn nhưng không ai thực hiện yêu cầu này vì một số ngày bạn có thể quên/cần gửi yêu cầu qua HTTP. Ngoài ra, việc giữ mật khẩu trong bộ nhớ sẽ thu hút các tin tặc XSS. Một lỗ hổng XSS không được chú ý sẽ lộ mật khẩu. Thông thường, các nhà phát triển giữ một trong hai session-id hoặc XSRF-token trong bộ nhớ và gửi nó với mỗi yêu cầu.
  2. Xem tại http://code.google.com/appengine/docs/java/config/webxml.html#Secure_URLs
  3. Đừng quên bảo vệ XSRF, bạn cần triển khai nó cho các yêu cầu thay đổi thứ gì đó (không chỉ đọc).
Các vấn đề liên quan