Proper HTTP Methods
Sử dụng phương thức HTTP phù hợp theo hoạt động: GET (đọc)
, POST (tạo)
, PUT/PATCH (thay thế/cập nhật)
, và DELETE (để xóa một bản ghi)
, và trả về 405 Method Not Allowed
nếu phương thức được yêu cầu không phù hợp với tài nguyên được yêu cầu.
Content Type Validation
Xác thực
content-type
trong các tiêu đề yêu cầu để ngăn chặn các cuộc tấn công XSS
Content-Type
trong yêu cầu có thể giúp các API an toàn hơn bằng cách đảm bảo rằng dữ liệu yêu cầu ở định dạng mong đợi và giảm thiểu nguy cơ các cuộc tấn công như tấn công chèn hoặc cross-site scripting (XSS).Validate User Input
Đầu vào người dùng là nguồn phổ biến của các lỗ hổng trong ứng dụng web.
Điều này là do đầu vào người dùng thường không được xác thực, làm sạch hoặc thoát đúng cách trước khi sử dụng trong ứng dụng web. Điều này có thể cho phép kẻ tấn công thao túng đầu vào và thực thi mã độc hại hoặc khiến ứng dụng hoạt động không như mong đợi.
Authorization Header
Sử dụng tiêu đề Authorization chuẩn để gửi mã thông báo thay vì tiêu đề tùy chỉnh hoặc tham số query/body.
Việc gửi mã thông báo trong các tham số truy vấn hoặc thân thường không được khuyến nghị vì các tham số này có thể được các hệ thống khác nhau, bao gồm các máy chủ web, proxy và cổng, ghi nhật ký hoặc lưu vào bộ nhớ đệm. Điều này có thể dẫn đến việc lộ dữ liệu nhạy cảm, bao gồm cả mã thông báo xác thực.
Ngoài ra, việc gửi mã thông báo trong các tham số truy vấn hoặc thân có thể khiến chúng dễ bị tấn công giả mạo yêu cầu liên site (CSRF) hơn. Trong một cuộc tấn công CSRF, kẻ tấn công có thể lừa người dùng gửi một yêu cầu bao gồm mã thông báo xác thực của họ, mà kẻ tấn công sau đó có thể sử dụng để mạo danh người dùng và truy cập vào tài khoản của họ.
Ngược lại, việc sử dụng tiêu đề Authorization
để gửi mã thông báo giúp đảm bảo rằng các mã thông báo không được các hệ thống trung gian ghi nhật ký hoặc lưu vào bộ nhớ đệm, và nó cũng có thể giúp bảo vệ chống lại các cuộc tấn công CSRF bằng cách cho phép máy chủ xác thực mã thông báo trước khi xử lý yêu cầu.
Avoid Client-Side Encryption
Sử dụng mã hóa phía máy chủ thay vì mã hóa phía máy khách.
Mã hóa phía máy khách không được khuyến nghị vì mã nguồn phía máy khách có thể dễ dàng được đảo ngược kỹ thuật, điều này có thể dẫn đến việc lộ các thuật toán mã hóa.
API Gateway
Sử dụng API Gateway để lưu vào bộ nhớ đệm, các chính sách giới hạn tốc độ và các tính năng bảo mật khác.
API gateway có thể giúp các API của bạn an toàn hơn bằng cách cung cấp một điểm kiểm soát tập trung để quản lý và bảo mật lưu lượng API. Dưới đây là một số cách API gateway có thể cải thiện bảo mật API:
- Xác thực và ủy quyền: API gateway có thể xử lý xác thực và ủy quyền người dùng, giảm gánh nặng cho các API riêng lẻ và cải thiện tính nhất quán trên toàn tổ chức. Điều này có thể bao gồm các kỹ thuật như xác minh JWT, OAuth và các cơ chế xác thực khác.
- Lọc lưu lượng và giới hạn tốc độ: API gateway có thể thực thi lọc lưu lượng và giới hạn tốc độ để bảo vệ các API chống lại các cuộc tấn công DDoS, tấn công brute force và các loại lạm dụng khác.
- Mã hóa và giải mã: API gateway có thể xử lý mã hóa và giải mã dữ liệu nhạy cảm để bảo vệ chống lại các vi phạm dữ liệu và việc đánh cắp.
- Ghi nhật ký và giám sát: API gateway có thể cung cấp ghi nhật ký và giám sát tập trung về lưu lượng API, giúp xác định và ứng phó với các mối đe dọa bảo mật và các vấn đề khác.
- Tích hợp với các công cụ bảo mật: API gateway có thể được tích hợp với các công cụ bảo mật như WAFs, SIEMs và các công cụ bảo mật khác để cung cấp các lớp bảo vệ bổ sung.