RESTful Web Services - Bảo mật

Vì Dịch vụ Web RESTful hoạt động với Đường dẫn URL HTTP, điều rất quan trọng là phải bảo vệ một Dịch vụ Web RESTful theo cách giống như một trang web được bảo mật.

Sau đây là các phương pháp hay nhất cần tuân thủ khi thiết kế một Dịch vụ Web RESTful -

  • Validation- Xác thực tất cả các đầu vào trên máy chủ. Bảo vệ máy chủ của bạn trước các cuộc tấn công SQL hoặc NoSQL.

  • Session Based Authentication - Sử dụng xác thực dựa trên phiên để xác thực người dùng bất cứ khi nào có yêu cầu đối với phương thức Dịch vụ Web.

  • No Sensitive Data in the URL - Không bao giờ sử dụng tên người dùng, mật khẩu hoặc mã thông báo phiên trong URL, những giá trị này phải được chuyển đến Dịch vụ Web thông qua phương thức POST.

  • Restriction on Method Execution- Cho phép sử dụng hạn chế các phương thức như phương thức GET, POST và DELETE. Phương thức GET sẽ không thể xóa dữ liệu.

  • Validate Malformed XML/JSON - Kiểm tra thông tin đầu vào đúng định dạng được chuyển tới phương thức dịch vụ web.

  • Throw generic Error Messages - Phương thức dịch vụ web nên sử dụng thông báo lỗi HTTP như 403 để hiển thị quyền truy cập bị cấm, v.v.

Mã HTTP

Sr.No. Mã và mô tả HTTP

1

200

OK - cho thấy sự thành công.

2

201

CREATED- khi một tài nguyên được tạo thành công bằng cách sử dụng yêu cầu POST hoặc PUT. Trả về liên kết đến tài nguyên mới được tạo bằng cách sử dụng tiêu đề vị trí.

3

204

NO CONTENT- khi nội dung phản hồi trống. Ví dụ: yêu cầu XÓA.

4

304

NOT MODIFIED- được sử dụng để giảm sử dụng băng thông mạng trong trường hợp yêu cầu GET có điều kiện. Nội dung phản hồi phải trống. Tiêu đề phải có ngày tháng, vị trí, v.v.

5

400

BAD REQUEST- cho biết rằng một đầu vào không hợp lệ được cung cấp. Ví dụ, lỗi xác thực, thiếu dữ liệu.

6

401

UNAUTHORIZED - cho biết rằng người dùng đang sử dụng mã thông báo xác thực không hợp lệ hoặc sai.

7

403

FORBIDDEN- nói rằng người dùng không có quyền truy cập vào phương pháp đang được sử dụng. Ví dụ: Xóa quyền truy cập mà không có quyền quản trị.

số 8

404

NOT FOUND - nói rằng phương pháp này không khả dụng.

9

409

CONFLICT- nêu tình huống xung đột trong khi thực hiện phương thức. Ví dụ, thêm mục nhập trùng lặp.

10

500

INTERNAL SERVER ERROR - nói rằng máy chủ đã ném một số ngoại lệ trong khi thực thi phương thức.