Tôi có dịch vụ REST hoàn toàn hợp lý và sẽ được sử dụng với ứng dụng iOS. Nó được xây dựng bằng Ruby/Sinatra nhưng tôi không nghĩ điều đó thực sự quan trọng ở đây.Cách bảo vệ phần 'công khai' của dịch vụ REST khỏi spam?
Tôi đang sử dụng Xác thực cơ bản HTTP qua SSL cho các điểm cuối khác nhau và phần đó đang hoạt động rất tốt.
Câu hỏi là: Làm cách nào để ngăn những người gửi spam ... gọi các phần của dịch vụ REST không được bảo vệ qua Xác thực cơ bản HTTP?
Ví dụ: User Registration
Giả sử các cuộc gọi REST là (POST).../register_account đi qua một đối tượng JSON trong cơ thể.
Vì lý do hiển nhiên, cuộc gọi này không thể mong đợi tên người dùng/mật khẩu được liên kết với tài khoản người dùng.
Ý tưởng là:
1) Ứng dụng có nó 'username' riêng/mật khẩu và một số cuộc gọi sẽ kiểm tra các ứng dụng thông tin. Sự cố: Khởi động thiết bị, v.v. có thể khai quật những thông tin đăng nhập đó.
2) Ứng dụng chuyển mã thông báo bí mật qua tiêu đề HTTP tới Dịch vụ REST cho các cuộc gọi đó. Sự cố: Tương tự như (1)
Có bất kỳ kỹ thuật nào thường được sử dụng để ngăn chặn các cuộc gọi spam đó không? Tôi đang nghĩ có thể giới thiệu id thiết bị của iPhone trong hỗn hợp nhưng chưa xác định được một cách tiếp cận xác định nào.
Cảm ơn
Tôi sẽ sử dụng đá quý này: https://github.com/datagraph/rack-throttle để hạn chế tốc độ. Tôi sẽ phân lớp nó để mã định danh khách hàng là một tổ hợp của id thiết bị + địa chỉ ip. Cũng sẽ nắm giữ ý tưởng thông tin đăng nhập ứng dụng. – Riaz