Bảo mật API tránh lấy sử dụng từ người khác

Chào các bác,

Em đang viết API bằng asp.net mvc , cho em hỏi có cách nào để bảo mật API không ạ, em nghĩ rằng sẽ sử dụng login và lưu lại 1 cái token nhưng không biết khả thi không ạ, có bác nào có từ khóa search tài liệu thì cho em xin với ạ, em cám ơn

Google search JWT, lưu token vào cookie hoặc session storage trên browser user.

4 Likes

Nếu nói về yếu tố bảo mật thì rộng lắm, nhưng có vẻ bạn mới tiếp cận về web API nên bạn nên tìm hiểu phần Authentication dựa vào JWT (Json Web Token) như @mexofex đã đề cập
Một số keywords về bảo mật có thể kể đến như:

  • Authentication: xác thực “who you are” như username/password, authentication header, API keys, OAuth2, JWT, vân tay, mống mắt, … Nên biết thêm về CSRF, XSS Attack khi sử dụng
  • Authorization: ủy quyền “what you do” như phân quyền admin, internal user, public user,…
  • CORS
  • Body encoding/decoding
6 Likes

Dạ chào 2 bác @utherpally @mexofex , em cũng đã biết cái này rồi ạ, ý của 2 bác là tạo một key bí mật VD “This-is-serect-key” rồi bỏ key này vô app phía client ( app mobile, trang SPA) mỗi request gửi lên phải kèm theo key bí mật này, server sẽ check key bí mật, nếu key đúng thì là hàng real đang gọi API còn nếu sai thì là hàng fake đang gọi trái phép API, đúng không ạ.

Cậu thử đọc lại kiến thức về JWT nha :smile:
Phần cậu mô tả không đúng đâu.

4 Likes

dạ vâng ạ, em cám ơn

1 Like

Không nhé bạn. Ý 2 bác đó là bạn phải có hệ thống account và role để xác định người truy cập vào app và phân quyền người dùng khi sử dụng app. Dù là bạn làm web client hay mobile client đều phải đăng nhập rồi lưu token vào local db (mobile app) hoặc cookie, session storage (web client) . Token đó phải có thời hạn và cơ chế refresh (tự refresh hay force logout tuỳ trường hợp)

3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?