Tôi đang viết một API REST riêng với Play! rằng tôi sẽ gọi điện từ một ứng dụng di động và tôi bối rối về cách giữ an toàn cho nó.Bảo mật với Play! từ Ứng dụng bên ngoài
Khi làm việc thông qua ví dụ khác về Công cụ tạo Blog khác trong tài liệu của Play !, tôi đã làm việc qua số authentication example và thỏa thuận đăng nhập thông qua trình duyệt. Từ những gì tôi hiểu về mô-đun an toàn của Play !, nó giúp với các phiên trình duyệt. Ngoài ra, mỗi câu hỏi StackOverflow tôi đã thấy đã được tham gia với một mô-đun quản trị trên web và các câu hỏi đã được liên quan đến các phiên là tốt.
Does the Play! framework have any built in mechanism to prevent session hijacking?
Enforce Https routing for login with play framework
hiểu biết hiện tại của tôi như thế nào an ninh nên làm việc:
- Ứng dụng di động "nhật ký trong" để các ứng dụng web và có được một số loại thẻ
- Với mỗi lệnh gọi tiếp theo, mã thông báo được nối vào cuối cuộc gọi API
- Nếu sử dụng thiết bị di động r "đăng xuất" hoặc token hết hạn, các ứng dụng web loại bỏ các dấu hiệu
- Mỗi cuộc gọi API sử dụng HTTPS để duy trì an ninh
Có thể cho tôi để thực hiện một yêu cầu HTTP từ các ứng dụng di động để ứng dụng web tôi tạo bằng Play! Khung trong khi vẫn giữ an toàn?
Tôi có đang tiếp cận toàn bộ tình huống không chính xác không?
Đây là lần phát đầu tiên! ứng dụng tôi đã tạo và đây là lần đầu tiên tôi sử dụng Heroku. Tôi không quá xa ở chỗ tôi sẽ phản đối việc chuyển sang một thứ khác nếu nó dễ dàng hơn/hiệu quả hơn/phù hợp hơn để giải quyết vấn đề này.
EDIT: Ngoài ra, trong hướng dẫn YABE của Play, có vẻ như họ kiểm tra mật khẩu ở dạng văn bản thuần túy. Chỉ cần từ một quan điểm chung, làm thế nào mà không phải là một vấn đề an ninh?
CHỈNH SỬA 2: Tôi đã xem xét thông tin nhà cung cấp OAuth và dường như giải quyết vấn đề. Sự lo lắng duy nhất của tôi với nó là v2.0 đã biết lỗi bảo mật và v1.0 có vẻ phức tạp để thực hiện cho một tình huống mà tất cả những gì tôi cần là kết nối an toàn giữa ứng dụng di động và ứng dụng web. Nếu tôi đã thực hiện mọi cuộc gọi yêu cầu SSL, tôi có thể làm cho mỗi phương thức Play chỉ nhận tên người dùng và mật khẩu làm thông số và bỏ qua OAuth hoàn toàn không?
"trong Play 's Yabe hướng dẫn, nó có vẻ như họ kiểm tra mật khẩu trong văn bản đơn giản "- phụ thuộc vào ý bạn bằng văn bản thuần túy. Nếu nó qua HTTPS, không có vấn đề gì khi gửi mật khẩu trong một yêu cầu. Nếu họ đang lưu trữ mật khẩu trong cơ sở dữ liệu trong văn bản thuần túy, điều đó thật tệ. Xấu hổ khi hướng dẫn hoàn toàn bỏ qua bảo mật cơ bản "để đơn giản". – Nick
Từ các liên kết bạn đã sử dụng, có vẻ như bạn đang sử dụng Play 1.x. Bất kỳ lý do bạn không đi với 2.x? – Nick
Heroku theo mặc định sử dụng Play 1.2.4. Tôi không biết lý do gì để nâng cấp nó ngay bây giờ và thời gian là điều quan trọng nhất liên quan đến ứng dụng dành cho thiết bị di động. – eliot