2009-07-17 44 views
5

Tôi muốn xây dựng các dịch vụ web của mình phục vụ dữ liệu JSON bằng cách sử dụng kiến ​​trúc RESTful.Bảo mật REST và JSON

Nhưng tôi chỉ muốn ứng dụng khách của riêng mình có thể yêu cầu từ dịch vụ web của tôi. Về cơ bản, các dịch vụ web của tôi chứa dữ liệu nhạy cảm không dành cho tiêu dùng công cộng, nhưng tôi muốn xây dựng theo cách đó để tôi có thể tạo nhiều ứng dụng khách khác nhau kết nối với dịch vụ web của tôi.

Sẽ đánh giá cao bất kỳ ý tưởng nào về điều này, cảm ơn.

Trả lời

5

Thực tế là nó RESTful hoặc sử dụng JSON không phải là yếu tố liên quan đến việc bảo vệ dịch vụ web. Bất kỳ dịch vụ web nào cũng cần phải được bảo mật theo cách tương tự. Có một vài điều bạn nên làm:

  1. Nếu có thể, đừng lưu trữ dịch vụ web của bạn trên Internet. Ví dụ: nếu dịch vụ web được lưu trữ trong mạng LAN của công ty bạn, dịch vụ này sẽ không bị tiếp xúc với mức tiêu thụ công khai trừ khi bạn đã tiết lộ cụ thể thông qua bộ định tuyến của mình.
  2. Thiết lập quy tắc xác thực và ủy quyền. Nếu bạn đang lưu trữ dịch vụ web của mình bên trong miền Windows, bạn có thể chỉ cần sử dụng xác thực Windows và thiết lập các quy tắc dựa trên người dùng và nhóm Active Directory. Các tùy chọn khác là sử dụng xác thực HTTP, xác thực chứng chỉ ứng dụng khách hoặc nếu bạn đang phát triển trong .NET, xác thực biểu mẫu.
  3. Sử dụng mã hóa (HTTPS), đặc biệt nếu trang web của bạn được lưu trữ trên Internet.
1

Bạn chỉ cần một vài thứ để thực hiện việc này. Trước tiên, máy khách dịch vụ sẽ cần phải xác thực đối với dịch vụ của bạn (qua HTTPS) để thực hiện yêu cầu. Khi khách hàng được xác thực, bạn có thể trả lại mã thông báo riêng mà khách hàng phải đưa vào với mã thông báo này. Miễn là mã thông báo hết hạn sau một khoảng thời gian hợp lý, và một thuật toán an toàn được sử dụng để tạo ra nó, điều này sẽ làm những gì bạn muốn.

Nếu bạn có yêu cầu bảo mật nghiêm ngặt hơn, bạn có thể làm theo đề xuất của Jakob hoặc yêu cầu khách hàng bắt đầu phiên VPN trước khi thực hiện yêu cầu.

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